반응형
JavaScript 재귀함수
Recursive function
미국[rɪ│kɜːrsɪv]발음듣기
영국식[rɪ│kɜːsɪv]발음듣기
형용사
- 반복[되풀이]되는
미국[│kɜːrsɪv]발음듣기
영국식[│kɜːsɪv]발음듣기
형용사
- 필기체인
JavaScript 재귀함수란?
함수가 자신을 다시 호출하는 구조로 만들어진 함수
재귀함수의 특징 :
1. 종료 조건이 있어야 하며 종료조건을 설정하지 않으면 무한 반복이 된다.
2. 재귀함수로 작성되는 코드는 반복문으로도 가능하다.
예제 1. 1부터 100까지의 총합 구하기
- 재귀함수가 아닌 반복문
let sum = 0;
for(let i=1; i<=100; i++){
sum += i;
}
console.log(sum)
- 재귀함수로 풀은 코드
let idx = 0;
function sum(a){
idx += a;
console.log(idx, a);
if(a==100) return idx;
a++;
return sum(a);
}
console.log(sum(1));
- 수학 공식으로 풀은 함수
만약 호제법 등등 이런 수학공식이 있으면 알고리즘 풀기 전 반드시 공부하는게 좋다
ex ) 아래 코드
function sum(a,b){
return sum = b*(b+1)/2;
}
console.log(sum(1,100));
재귀함수 사용할 때는 return 을 잊지 않기 !!
예제2
function test(num){
if(num == 10){
return -1;
}
num++;
test(num) // 재귀함수를 쓸 때 return 이 없으면 나온 값이 돌아는 가지만
} // 결국 return 되지는 않는다.
console.log(test(1)); //undefined
function test1(num){
if(num == 10){
return -1;
}
num++;
return test1(num) //return 을 적어줘야함
}
console.log(test1(1)); // -1
예제 3
프로그래머스 javascript 코딩테스트 콜라츠추측 문제
var answer = 0 ;
function solution(num){
if(answer>500){
return -1
}else if(num==1){
return answer;
} else if(num%2==0){
num = num/2;
answer++;
return solution(num); // 여기에 return 이없으면 위에 최종return 값이 안나온다.
}else{
num = num* 3+1;
answer++;
return solution(num); //여기도요
}
}
console.log(solution(10))
반응형
'Javascript' 카테고리의 다른 글
JavaScript 자바스크립트 .reduce() 사용법, 연습 예제 (0) | 2021.05.21 |
---|---|
JavaScript 자바스크립트 .concat() 사용법, 연습 예제 (0) | 2021.05.21 |
JavaScript 자바스크립트 String 함수 .repeat() 사용하기 (0) | 2021.05.21 |
JavaScript 자바스크립트 배열 Array .filter() 란? 사용법 (0) | 2021.05.21 |
javaScript 자바스크립트 .charCodeAt() 유니코드를 나타내는 값 반환 (0) | 2021.05.20 |