C語言數據結構
1 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
一、遞歸的寫法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int g(int m,int n); int main() { printf("g(3,5)的結果:%d\n",g(3,5)); return 0; } int g(int m,int n) { if(m==0 && n>=0) return 0; else if(m>0 && n>=0) return g(m-1,2*n)+n; return 0; } |
遞歸執(zhí)行過程:
最后往上依次返回值,5返回0,所以4返回0+20,所以3返回20+10,所以2返回30+5,所以結果就是35。
二、不使用遞歸的寫法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> int g(int m,int n); int main() { printf("g(3,5)的結果:%d\n",g(3,5)); return 0; } int g(int m,int n) { int sum=0; while(m--) { sum=sum+n; n=2*n; } return sum; } |
- 1 回答
- 0 關注
- 786 瀏覽
添加回答
舉報
0/150
提交
取消