[Coding Test] Recursion (재귀)
2754 단어 coding testcoding test
문제
재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요. 팩토리얼이란 n에서부터 1까지의 정수를 모두 곱한것을 말합니다.
0! = 1
1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5
풀이
const factorial = n => {
return (n === 0) ? 1 : n * factorial(n-1);
}
오답
let result = 1;
const factorial = n => {
// console.log("n : ", n)
if (n === 0) return result;
result = result * n;
// console.log("result : ", result);
factorial(n-1);
}
- result 를 console 로 찍으면 결과가 잘 나오지만, 결과가
undefined
가 나왔다.
- python 으로 재귀함수를 구현하던 때와 같이
factorial(n-1)
을 타고 들어가서 return 값이 나오면 된다고 생각했지만, js 에서는 안된다.
- 재귀로 들어가기 전에 코드 자체에서 return 값이 없기 때문에
undefined
가 나오므로 유의해야한다.
Author And Source
이 문제에 관하여([Coding Test] Recursion (재귀)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jhsol24/Coding-Test-Recursion-재귀
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const factorial = n => {
return (n === 0) ? 1 : n * factorial(n-1);
}
let result = 1;
const factorial = n => {
// console.log("n : ", n)
if (n === 0) return result;
result = result * n;
// console.log("result : ", result);
factorial(n-1);
}
undefined
가 나왔다.factorial(n-1)
을 타고 들어가서 return 값이 나오면 된다고 생각했지만, js 에서는 안된다.undefined
가 나오므로 유의해야한다.Author And Source
이 문제에 관하여([Coding Test] Recursion (재귀)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jhsol24/Coding-Test-Recursion-재귀저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)