본문 바로가기
Java/연습문제

[JAVA] 재귀함수 연습 문제

by 2D3 2022. 10. 21.
728x90

1. 1부터 num까지의 합을 리턴

return num + sumTo(num -1); num에 -1을 빼서 n번째까지 계속 반복

2. 홀수인지 여부 확인

if (num == 0) return false;
if (num == 1) return true;

return isOdd(num -2) 계속 2씩 빼면서 0이나 1이 나올 때까지 반복

3. n!

return num * factorial(num -1); n* n-1 반복

4. 피보나치 수열

return fibonacci(num -1) + fibonacci(num -2); 피보나치(앞에 두 수의 합)

5. 배열의 합

int head = arr[0];
int[] tail = Arrays.copyOfRange(arr, 1, arr.length);
return head + arrSum(tail);

Arrays.copyOf(원본배열, 복사할 길이); Arrays.copyOfRange(원본 배열, 복사할 시작 인덱스, 복사할 끝 인덱스) 복사된 배열에서 값을 바꿔도 원본 배열의 값은 바뀌지 않음

6. 배열 길이 리턴

return 1+ arrLength(Arrays.copyOfRange(arr, 1, arr.length));

✨엣지 케이스와 코너케이스

  • 엣지 케이스: 데이터의 값이 알고리즘의 특성에 따른 일정한 범위를 넘을 경우
  • 코너 케이스: 여러 가지 변수와 환경의 복합적인 상호작용으로 발생하는 문제
728x90

댓글