函数实验答疑
题目:
代码:
#include"iostream"
using namespace std;
//编程求输入的三个数中最大值。(用函数调用来实现)
double max3()
{
double a,b,c;
cin>>a>>b>>c;
double max=a;
if(b>a)
{
max=b;
}
if(c>a)
{
max=c;
}
return max;
}
//编写一个求x的n次方的函数。x,n由键盘输入。(用函数调用来实现)
double xn()
{
double x,n,result=1;
cin>>x>>n;
for(int i=0;i<n;i++)
{
result=result*x;
}
return result;
}
//求 1 到 15 的阶乘和。
//分成两个函数,一个函数求阶乘,一个求和。
int jiecheng(int n)
{
int result=1;
for(int i=1;i<=n;i++)
{
result=result*i;
}
return result;
}
int jiechenghe(int n)
{
int result=0;
for(int i=1;i<=n;i++)
{
result=result+jiecheng(i);
}
return result;
}
//递归求 n 阶 勒让德多项式
double Pn(int n,int x)
{
if(n==0)
{
return 1;
}
else if(n==1)
{
return x;
}
else
{
return (double)((2*n-1)*x-Pn(n-1,x)-(n-1)*Pn(n-2,x))/n;
}
}
//求 m,n 的最小公倍数。
int gongbei(int m,int n)
{
int max=m>n?m:n;
for(int i=max;i<=m*n;i++)
{
if(i%m==0&&i%n==0)
{
return i;
}
}
}
//求 m,n 的最小公约数
int gongyue(int m,int n)
{
int result=1;
int min=m<n?m:n;
for(int i=min;i>0;i++)
{
if(m%i==0&&n%i==0)
{
return i;
}
}
}
//编程输出 1000 以内所有亲密数对,并输出所有完数之和。
//先写 1000 以内完数的判断,再写求和和。
//求完数要先求因子和,所以先写因子和函数。
int yinzihe(int n)
{
int sum=0;
for(int i=1;i<n;i++)
{
if(n%i==0)
{
sum=sum+i;
}
}
return sum;
}
bool wanshu(int n)
{
if(n==yinzihe(n))
{
return true;
}
else
{
return false;
}
}
int wanshuhe1000()
{
int sum=0;
for(int i=1;i<=1000;i++)
{
if(wanshu(i)==true)
{
sum=sum+i;
}
}
cout<<"1000 以内的完数和为:"<<sum<<endl;
return sum;
}
//亲密数对
void qinmi1000()
{
for(int i=1;i<=1000;i++)
{
int j=yinzihe(i);
if(yinzihe(j)==i)
{
cout<<i<<" 和 "<<j<<" 是亲密数对" <<endl;
}
}
}
int main()
{
qinmi1000();
}