C语言递归练习
1、炮彈一樣的球狀物體,能夠堆積成一個(gè)金字塔,在頂端有一個(gè)炮彈,它坐落在一個(gè)4個(gè)炮彈組成的層面上,而這4個(gè)炮彈又坐落在一個(gè)9個(gè)炮彈組成的層面上,以此類(lèi)推。寫(xiě)一個(gè)遞歸函數(shù)CannonBall,這個(gè)函數(shù)把金字塔的高度作為參數(shù),并且返回它所包括的炮彈數(shù)量。函數(shù)必須按照遞歸方式實(shí)現(xiàn),不可以使用迭代結(jié)構(gòu),例如while或for。
int CannonBall(int h) {if(h == 1) return 1;elsereturn CannonBall(h-1) + pow(h,2); } int main(void) {printf("%d\n",CannonBall(4));return 0; }
2、使用C編寫(xiě)一個(gè)指數(shù)函數(shù),實(shí)現(xiàn)n^k
int RaiseToPower(int n, int k) { if(k == 0) return 1; else return n * RaiseToPower(n,k -1); } int main() { printf("%d\n",RaiseToPower(3,4)); return 0; }
3、使用歐幾里得公式寫(xiě)一個(gè)遞歸函數(shù)gcd(m,n),用來(lái)計(jì)算m與n的最大公約數(shù).
int gcd(int m, int n) { if(m % n ==0) return n; else return gcd(n,m % n); } int main() { printf("%d\n",gcd(18,4)); return 0; }
轉(zhuǎn)載于:https://blog.51cto.com/wuyudong/1304651
總結(jié)
- 上一篇: 控件属性动作
- 下一篇: 解决WCF接口无法传递object参数的