您的位置:首页 > 其它

第四周上机实践项目——项目5-用递归方法求解

2016-03-23 19:20 387 查看

/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作    者:郭永恒
*完成日期:2016年3月23日
*版 本 号:v1.0
*
*问题描述:
*(1):编写递归函数求出n的阶乘
*(2):写出1*3*...*n的递归式,编写出递归函数求解
*(3):用递归求两个数的最大公约数
*(4):递归,输出斐波那契数列的低20个数
*/
//问题(1)
#include <iostream>
using namespace std;

int jc(int n)
{
if(n == 1)
return 1;
return n*jc(n-1);
}

int main()
{
int n;
cin >> n;
cout << jc(n) << endl;
return 0;
}

运行结果:



//问题(2)
#include <iostream>
using namespace std;

int f(int n)
{
if(n == 1)
return 1;
return n * f(n-2);
}

int main()
{
int n;
cin >> n;//根据题目,此处的n只能是奇数
cout << f(n) << endl;
return 0;
}


运行结果:



//问题(3)
#include <iostream>
using namespace std;

int f(int m,int n)
{
if(n == 0)
return m;
return f(n,m%n);
}

int main()
{
int m,n;
cin >> m >> n;
cout << f(m,n) << endl;
return 0;
}

运行结果:



//问题(4)
#include <iostream>
using namespace std;

int fib(int n);

int main()
{
cout << fib(20) << endl;
return 0;
}

int fib(int n)
{
if(n == 1 || n == 2)
return 1;
return fib(n-2) + fib(n-1);
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: