■ 재귀호출(Recursion)
재귀호출은 자기 자신을 참조하거나 호출하여 문제를 해결하는 방식을 의미합니다.
5!를 구하는 경우, 다음과 같이 2가지 방법으로 답을 구할 수 있습니다.
5! 을 구하기 위해서는 4!값에 5를 곱하면 되고, 4!값은 3!값에 4를 곱하면 되고....
5!=4*4!
→ 4!=4*3!
→ 3!=3*2!
→ 2!=2*1!
결국 n!값을 구하는 방법은 n-1! 값을 구하면서 단계적으로 진행하는 것입니다.
따라서, n! 값을 반환하는 함수 Fact(n)이 있다고 하면
1. 내부적으로 Fact(n)이 수행이되면 내부에서 Fact(n-1)을 호출 하고,
2. 다시 내부적으로 Fact(n-2)를 호출하는 방식으로 계속 수행
3. Fact(1)=1 까지 계산하면 됩니다.
■ 재귀호출 구현하기
프로그램 언어로는 다음과 같이 함수로 구현하게 됩니다.
int factorial(int n)
{
if (n <= 1)
return 1;
else
return n * factorial(n-1);
}
이를 스크래치 프로그램에서 구현하려면 "방송하기"와 "방송을 받았을 때"를 다음과 같은 형식으로 활용하면 됩니다.
우선 다음과 같이 변수3개를 정해야 합니다.
스크래치 프로그래밍: 변수/리스트와 제어 기초 활용 (0) | 2014.02.28 |
---|---|
스크래치 프로그래밍: 관찰/제어/연산 기초 활용 (0) | 2014.02.22 |
스크래치 프로그래밍: 동작/형태/제어/이벤트 기초 활용 (0) | 2014.02.20 |
스크래치 프로그래밍: 스크립트 블럭(Scripts Blocks) 구성 (1) | 2014.02.18 |
스크래치(Scratch) 개발환경(Editor)과 프로그래밍 (0) | 2014.02.13 |