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