/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:aaa.cpp
*作 者:秦超
*完成日期:2016年3月23日
*版 本 号:v1.0
*
*问题描述:
*(1):编写递归函数求出n的阶乘
*(2):写出1*3*...*n的递归式,编写出递归函数求解
*(3):用递归求两个数的最大公约数
*(4):递归,输出斐波那契数列的低20个数
*/
(1)
#include <iostream>
using namespace std;
int jc(int x);
int main()
{
int n;
int t;
cin>>n;
t=jc(n);
cout<<t;
return 0;
}
int jc(int x)
{
int sum=1;
if(x==0||x==1)
return 1;
else
{
return x*jc(x-1);
}
}
运行结果:
(2)
#include <iostream>
using namespace std;
int f(int n)
{
if(n==1)
return 1;
else
return n*f(n-2);
}
int main()
{
int n;
cin>>n;
cout<<f(n)<<endl;
return 0;
}
运行结果:
(3)
#include <iostream>
using namespace std;
int gcd(int x,int y)
{
int temp;
while(y>0)
{
temp=x%y;
x=y;
y=temp;
}
return x;
}
int main()
{
int a,b,g;
cin>>a>>b;
g=gcd(a,b);
cout<<"最大公约数是:"<<g;
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);
}
运行结果: