永发信息网

如何用while循环求最大公约数

答案:3  悬赏:80  手机版
解决时间 2021-02-12 13:01
算法:1)a除以b,得余数r; 2)如果r = 0,则停止:最大公约数是b; 3)否则,让a=b,让b=r,回到步骤一。
问题:实现这个算法并用它求12,345和987,654,312的最大公约数,考虑如何用while循环解释这个算法。(借助trace table跟踪表)

求大神指点!
用Python语言
最佳答案
求最大公约数要用到辗转相除法,我不了解python语言,下面是用C写的,可基本原理都是一样的,希望有帮助。
#include<stdio.h>
int main(void)
{
int m,r,n;

int s;

printf("input two numbers:\n");

scanf("%d%d",&m,&n);

s =m*n;

while(n!=0)

{
r =m%n;

m =n;

n=r;

}
printf("最大公约数是:%d\n",m);
return 0;
}

请注意987,654,312是否超过了int类型的最大值。
全部回答
unsignedint int GreatestCommonFactor(unsignedint int a, unsigned int b) { unsignedint int c, d, while(c<=a&&c<=b) { if((a%c==0)&&(b%c==0)) { d=c; } c++; } return d; }
#include void main() { int m,n,temp; if(m%n==0) printf("最大公约数是%d",n); if(m
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯