1부터 어떤 수까지의 합을 재귀호출로 구해보자
sum(n) = n + (n-1) + (n-2) + ... + 3 + 2 + 1
이를 다시 정리하면,
sum(n) = [ { 1, n = 1 }, { n + sum(n-1), n > 1 } ]
여기서, n 이 1이 되는 조건이 재귀호출 종료조건이 되게 된다.
void main()
{
int isum = 0;
...
isum = sum(3);
...
}
int sum(int n)
{
if ( n == 1 ) return 1;
else
return ( n + sum( n - 1) );
}
sum(n) = n + (n-1) + (n-2) + ... + 3 + 2 + 1
이를 다시 정리하면,
sum(n) = [ { 1, n = 1 }, { n + sum(n-1), n > 1 } ]
여기서, n 이 1이 되는 조건이 재귀호출 종료조건이 되게 된다.
void main()
{
int isum = 0;
...
isum = sum(3);
...
}
int sum(int n)
{
if ( n == 1 ) return 1;
else
return ( n + sum( n - 1) );
}
댓글