恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
函数递归的练习
首页
资讯中心
/
函数递归的练习
函数递归的练习
发布时间:2026/10/10 14:30:55
斐波那契数列的实现输入一个正整数用迭代和递归两种方式简单实现斐波那契数列Fibonacci sequence计算公式Fn{0,n01,n1Fn−1Fn−2,n≥2 F_n \begin{cases} 0, n 0 \\ 1, n 1 \\ F_{n-1} F_{n-2}, n \ge 2 \end{cases}Fn⎩⎨⎧0,1,Fn−1Fn−2,n0n1n≥2迭代的写法intFib(intn){inta1;intb1;intc0;if(n3)return1;for(inti2;in;i){cab;ab;bc;}returnc;}递归的写法intFib(intn){if(n3)return1;returnFib(n-1)Fib(n-2);}需要注意的是虽然递归的写法简洁但当输入值非常大时计算效率非常慢所以更推荐使用迭代的方式。递归实现n的k次方编写一个函数实现n的k次方使用递归实现。intPow(intn,intk){if(k0)returnn;elseif(k1)returnn*Pow(n,k-1);}计算一个数的每位之和写一个递归函数DigitSum(n)输入一个非负整数返回组成它的数字之和。例如调用DigitSum(1729)则应该返回1729它的和是19输入1729输出19intDigitSum(intn){if(n9)returnDigitSum(n/10)n%10;elsereturnn;}阶乘函数阶乘factorial计算公式Fac(n){1,n0n∗(n−1)!,n0 Fac(n) \begin{cases} 1, n0\\ n * (n - 1)! , n0 \end{cases}Fac(n){1,n∗(n−1)!,n0n0迭代的写法intFac(intn){intret1;for(intin;i1;i--){ret*i;}returnret;}递归的写法intFac(intn){if(n0)return1;elsereturnn*Fac(n-1);}打印一个数的每一位输入一个正整数用递归方式实现打印整数的每一位voidPrint(intn){if(n9)Print(n/10);printf(%d ,n%10);}