算法:1)a除以b,得余数r; 2)如果r = 0,则停止:最大公约数是b; 3)否则,让a=b,让b=r,回到步骤一。
问题:实现这个算法并用它求12,345和987,654,312的最大公约数,考虑如何用while循环解释这个算法。(借助trace table跟踪表)
求大神指点!
用Python语言
如何用while循环求最大公约数
答案:3 悬赏:80 手机版
解决时间 2021-02-12 13:01
- 提问者网友:自食苦果
- 2021-02-12 03:20
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-02-12 04:27
求最大公约数要用到辗转相除法,我不了解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类型的最大值。
#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类型的最大值。
全部回答
- 1楼网友:慢性怪人
- 2021-02-12 07:08
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;
}
- 2楼网友:迟山
- 2021-02-12 05:29
#include void main() { int m,n,temp; if(m%n==0) printf("最大公约数是%d",n); if(m
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯