计算两个数的最大公约数——辗转相除法

算法:

step1:如果b等于0,计算结束,a就是最大公约数;

step2:否则,计算a除以b的余数,让a等于b,而b等于那个余数;

step3:回到第一步。

表格演示:

 a          b          t

12        18        12

18        12         6

12         6          0

6           0          

程序:

# include<stdio.h>

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    
    int ret=0;
    int t1=a;
    int t2=b;
    
    while(b!=0){
        ret=a%b;
        a=b;
        b=ret;
        printf("a=%d,b=%d,ret=%d\n",a,b,ret);
    }
    
    printf("%d和%d的最大公约数为%d.\n",t1,t2,a);
    
    return 0;
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章