P43页
3-10 最大最小公约数公倍数
3-13 递归方法编写Fibonacci级数
3-15编写递归函数getPower
3-16 递归的底层调用
实验时间:2023/3/28
实验过程:代码+结果截图保存在csdn上
实验总结:1、2、3、4
详细记录bughe解决方案,重点最后一道题目要自己找到合适的例题去表述,如递归计算N!
#include<iostream>
#include<cmath>
using namespace std;
int fn1(int i,int j);
int main()
{
int i,j,x,y;
cout<<"请输入一个正整数:";
cin>>i;
cout<<"请输入另一个整数:";
cin>>j;
x=fn1(i,j);
y=i*j/x;
cout<<i<<"和"<<j<<"的最大公约数是:"<<x<<endl;
cout<<i<<"和"<<j<<"的最小公倍数是:"<<y<<endl;
return 0;
}
int fn1(int i,int j)
{
int temp;
if(i<j)
{
temp=i;
i=j;
j=temp;
}
while(j!=0)
{
temp=i%j;
i=j;
j=temp;
}
return i;
}
第二个
#include<iostream>
using namespace std;
float p(int n,int x);
int main()
{
int n,x;
cout<<"请输入正整数n:";
cin>>n;
cout<<"请输入正整数x:";
cin>>x;
cout<<"n="<<n<<endl;
cout<<"x="<<x<<endl;
cout<<"p"<<n<<"("<<x<<")="<<p(n,x)<<endl;
return 0;
}
float p(int n,int x)
{
if (n==0)
return 1;
else if(n==1)
return x;
else
return ((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)) /n;
}
第三个
#include<iostream>
using namespace std;
int getPower(int x,int y);
double getPower(double x,int y);
int main()
{
int iNumber,power;
double dNumber;
int iAnswer;
double dAnswer;
cout<<"Enter an int base number:";
cin>>iNumber;
cout<<"Enter a double base number:";
cin>>dNumber;
cout<<"To what power?";
cin>>power;
iAnswer=getPower(iNumber,power);
dAnswer=getPower(dNumber,power);
cout<<iNumber<<"to the"<<power<<"the power is"<<iAnswer<<endl;
cout<<dNumber<<"to the"<<power<<"the power is"<<dAnswer<<endl;
return 0;
}
int getPower(int x,int y)
{
if(y==1)
return x;
else if(y==0)
return 1;
else if(y<0)
return 0;
else
return (x*getPower(x,y-1));
}
double getPower(double x,int y)
{
if(y==1)
return x;
else if (y==0)
return 1;
else if(y<0)
return 1/ getPower(x,-y);
else
return(x*getPower(x,y-1));
}
3-16
对同一个函数的多次不同调用中,编译器会为函数的形参和局部变量分配不同的空间,它们互不影响