(1)
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年3月22日 * 版本号:vc++6.0 * * 问题描述: 编写递归函数求出n的阶乘 * 输入描述: 输入n * 程序输出: 输出结果 */ #include<iostream> using namespace std; int fac(int n); int main() { int n,i,sum=1; cin>>n; for(i=1;i<=n;i++) { sum=fac(i); } cout<<sum<<endl; return 0; } int fac(int n) { if(n==1) { return 1; } else { return n*fac(n-1); } }
运行结果:
(2)
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年3月22日 * 版本号:vc++6.0 * * 问题描述: 编写递归函数求出1*3*5*...*n的阶乘 * 输入描述: 输入n * 程序输出: 输出结果 */ #include<iostream> using namespace std; int fac(int n); int main() { int n,i=1,sum=1; cin>>n; while(i<=n) { sum=fac(i); i=i+2; } cout<<sum<<endl; return 0; } int fac(int n) { if(n==1) { return 1; } else { return n*fac(n-2); } }
运行结果:
(3)
#include<iostream> using namespace std; int gcd(int x,int y); int main() { int n,m; int a,b,g; cin>>a>>b; g=gcd(a,b); cout<<"最大公约数:"<<g; return 0; } int gcd(int x,int y) { int r; r=x%y; y=r; x=y; return x; }
运行结果:
(4)
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年3月22日 * 版本号:vc++6.0 * * 问题描述: 编造递归函数fib(n)返回第n个斐波那契数,以此输出斐波那契数列的20个数 * 输入描述: 输入n。 * 程序输出: 输出第20个数。 */ #include<iostream> using namespace std; int fib(int n); int main() { int n,sum; cin>>n; sum=fib(n); cout<<sum<<endl; return 0; } int fib(int n) { if(n==1) { return 0; } else if(n==2||n==3) { return 1; } else { return fib(n-1)+fib(n-2); } }
运行结果:
学习心得:
懂得了用递归去解决问题