반응형
문제 1
밑과 지수를 받아들이는 power라는 함수를 작성합니다. 이 함수는 밑의 거듭제곱을 지수로 반환해야 합니다. 이 함수는 Math.pow()의 기능을 모방해야 합니다. 음의 밑과 지수에 대해서는 신경쓰지 마세요.
// power(2,0) // 1
// power(2,2) // 4
// power(2,4) // 16
function power(){}
정답
더보기
// power(2,0) // 1
// power(2,2) // 4
// power(2,4) // 16
function power(num, pow){
if(pow === 0) {
return 1;
}
return num * power(num, pow - 1)
}
문제 2
숫자를 받아 해당 숫자의 계승(팩토리얼)을 반환하는 팩토리얼 함수를 작성하시오.
팩토리얼은 정수와 그 아래의 모든 정수의 곱입니다.
예를 들어, 4 팩토리얼 (4!)은 4 * 3 * 2 * 1 = 2입니다. 팩토리얼 0(0!)은 항상 1입니다.
//factorial(1) // 1
// factorial(2) // 2
// factorial(4) // 24
// factorial(7) // 5040
function factorial(){
}
정답
더보기
//factorial(1) // 1
// factorial(2) // 2
// factorial(4) // 24
// factorial(7) // 5040
function factorial(x){
if (x < 0 ) {return 0;}
if (x <= 1 ) {return 1;}
return x * factorial(x-1);
}
문제3
숫자 배열을 받아 모든 숫자의 곱을 반환하는 productOfArray라는 함수를 작성하시오.
// productOfArray([1,2,3]) // 6
// productOfArray([1,2,3,10]) // 60
function productOfArray(arr) {}
정답
더보기
function productOfArray(arr) {
if(arr.length === 0) {
return 1;
}
return arr[0] * productOfArray(arr.slice(1));
}
문제4
숫자를 받으면 0부터 함수에 전달된 숫자까지의 모든 숫자를 더하는 recursiveRange라는 함수를 작성하시오.
// recursiveRange(6) // 21
// recursiveRange(10) // 55
function recursiveRange(num){}
정답
더보기
function recursiveRange(x){
if (x === 0 ) {return 0;}
return x + recursiveRange(x-1);
}
문제5
숫자를 받아 피보나치 수열의 n번째 숫자를 반환하는 fib라는 재귀 함수를 작성하시오. 피보나치 수열은 1, 1로 시작하는 1, 1, 2, 3, 5, 8, ...의 정수의 수열이며, 모든 수는 이전 두 수의 합과 같다는 것을 명심하세요.
// fib(4) // 3
// fib(10) // 55
// fib(28) // 317811
// fib(35) // 9227465
function fib(num){}
정답
더보기
// fib(4) // 3
// fib(10) // 55
// fib(28) // 317811
// fib(35) // 9227465
function fib(num){
if (num <= 2) {
return 1;
}
return fib(num-1) + fib(num-2);
}
반응형
'Algorithm > Theory' 카테고리의 다른 글
검색 알고리즘 (0) | 2024.07.10 |
---|---|
(더 어려운) 재귀 연습 문제 1부 (0) | 2024.07.10 |
재귀 (Recursion) (0) | 2024.07.08 |
문제 해결 패턴 연습 문제 (0) | 2024.07.01 |
문제 해결 패턴 (0) | 2024.06.28 |