问题标题: 酷町堂:1238 最大公约数

0
0
已解决
王子健
王子健
初级天翼
初级天翼
#include<iostream>  
using namespace std;  
int main()  {  
    int a,b,t=0;
    cin>>a>>b;
    if(a<b) swap(a,b);
    while (a%b){
        t=a;
        b=a%b;
        a=t;
    }
    cout<<b;
    return 0;  
}  

跪求大佬这题如何错的,望采纳。(今天学的辗转相除法好难,还有最大公约数、质数、因数)

大佬在回答时,顺便讲解一下辗转相除法、最大公约数、质数、因数。

谢谢了。


0
已采纳
高梓荣
高梓荣
新手天翼
新手天翼

此题思路:

1.if判断比较大小可以去掉

2.while循环应按如下格式写:(m是你这题的a,n是你这题的b,r是你这题的t)

while(r!=0)
{
    r=m%n;
    m=n;
    n=r;
}

3.r赋初值为1

4.最后输出m(也就是a)

0
0
周建勋
周建勋
中级光能
中级光能

辗转相除法

while (r!=0){

x=y;

y=r;

r=x%y;

}

cout<<y<<endl;

0
许天奕
许天奕
新手守护
新手守护

辗转相除法

循环(r!=0){

    r等于a%b;

    a等于b;

    b等于r;

}

 

我要回答