在线等答案 c++ 最小公倍数 最大公约数 的调用的

2024-11-23 09:04:10
推荐回答(4个)
回答1:

x=ay+b
先讨论(x%y)的余数b是否等于0,如果是,则y为最大公约数.否则将y的值赋给x,把b的值赋给y然后在继续对b讨论.一直循环下去直到b=0时的y值就是所求的最大公约数了.在程序中验证部分可调用一个函数.如下面的yushu()函数.
这个程序你可以自己去运行一下,然后自己再理解一下吧.
#include
#include
int yushu(int x,int y)
{
int k;
if(x {
k=x;
x=y;
y=k;
}
if(x%y==0)
return abs(y);
else
return yushu(y,x%y);
}
void main()
{
int x,y,z,t;
cout<<"请输入x="< cin>>x;
cout<<"请输入y="< cin>>y;
z=yushu(x,y);
t=(x*y)/z;
cout< cout<}
另外,团IDC网上有许多产品团购,便宜有口碑

回答2:

//你这个程序不只是语法上 比如说多一个分号,少些大括号这些问题
//关键的问题是算法有问题。
int gong_yue_shu(int x,int y)
{
//使用辗转相除法获取公约数
//好吧这个是数学家已经算出来的办法,不需要你程序员重新设计算法...
int temp=int(),q=int();
if (x{temp=x;x=y;y=temp;} //如果是复合if语句要注意写大括号。
//else
do
{
q=x%y;//得到余数q
x=y; //重新设置被除数 将除数y--作为--被除数
y=q; //重新设置除数 将余数q--设为--除数
}
while(q);
cout <<"最大公约数为:" << x << endl;
return x;
}

int main()
{int x,y;
cout << "输入任意2个整数>";
cin>>x>>y;
int GYS=gong_yue_shu(x,y); //返回最大公约数
//最小公倍数等于两数之积除以最大公约数
cout << "最小公倍数为"<<(x*y)/GYS;

return 0;
}

回答3:

给你写个简单的!
#include
main()
{
int m,n,i,t;

scanf("%d%d",&m,&n);
for(i=m;i>=1;i--)
{
if(m%i==0&&n%i==0) break;
}
printf("%d\n",i);
t=(m*n)/i;
printf("%d\n",t);
}

回答4:

int gong_yue_shu(int x,int y);

去掉; 分号