....

2014年5月23日 星期五

[長知識] C語言 - 新手篇章 - 遞迴

#include <stdio.h>
#include <stdlib.h>

int sum(int n){
//都任何值進去,都會做1加到 n
if(n == 1){
return 1;
}else{
//呼叫自己 sum(n-1)+n,+n被斷開欠著
// 丟5,sum(4)+5, +5欠著去堆疊 ...      
//  5 --> 4 --> 3 --> 2 --> 1
//  5 <-- 4 <-- 3 <-- 2 <-- 1
//  15   10     6     3
// 遞迴是一直往上堆疊,有上限
return sum(n-1)+n;
}

}

int main(int argc, char *argv[]) {
//遞迴
int a;

printf("輸入數字由1加到x \nx=");
scanf("%i", &a);

printf("%i", sum(a));

return 0;

}

沒有留言:

張貼留言