项目3:特殊三位数
请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘
#include <iostream>
using namespace std;
int fun(int n)
{
int s=1,i;
if(n==0)
s=1;
else
{
for(i=1; i<=n; i++)
s*=i;
}
return s;
}
int main()
{
int a,b,c,n,i;
cout<<"满足条件n=a!+b!+c!的所有三位数为:"<<endl;
for(i=100; 1<1000; i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(i==fun(a)+fun(b)+fun(c))
cout<<i;
}
return 0;
}
项目2:最大公约和和最小公倍数
从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数,最大公约数采用的算法是辗转相除法(具体算法可用百度)。其中编写自定义函数实现求最大公约数和最小公倍数
#include <iostream>
using namespace std;
int F(int m,int n,int &gcd)
{
int temp,M=m,N=n;
if(m<n)
{
temp=m;
m=n;
n=temp;
}
while(m%n!=0)
{
temp=m%n;
m=n;
n=temp;
}
gcd=n;
temp=(M*N)/gcd;
return temp;
}
int main()
{
int a,b,g;
cout<<"请输入两个整数:"<<endl;
cin>>a>>b;
cout<<"最小公倍数:"<<F(a,b,g)<<" ";
cout<<"最大公约数:"<<g<<endl;
return 0;
}