c·c++/c 프로그래밍

재귀함수 질문

바로이순간 2012. 3. 22. 09:25

x와 y가 정수이고 y가 x보다 클때

x+(x+1)+(x+2)+....+(y+1)+y를 구하는 재귀함수를구하는데

이게무슨말인지 알려주세요


int psum(int n, int x) {

  만약 n이 x와 같으면 n를 돌려준다.

  // 여기서는 n 이 x보다 크다는 뜻이다.

  n+psum(n-1,x) 를 돌려준다.

}


위와 같이 만든 재귀함수 psum을 써서

result=psum(y, x); 와 같이 값을 구한다는 뜻입니다.


예를 들어서 x=2 이고 y=5인 경우를 보겠습니다.

psum(5,2)

.....n이 5 x가 2

.....5+psum(4,2)

..............n 이 4 x가 2

..............4+psum(3,2)

.....................n 이 3 x가 2

.....................3+psum(2,2)

............................n 이 2 x가 2

............................2를 돌려준다.

.....................5를 돌려준다. (2+3)

...............9를 돌려준다. (2+3+4)

.......14를 돌려준다. (2+3+4+5)

이렇게 psum은 2부터 5까지의 합을 구해준다.