n){m=m—n;} while(n>m){n" />有以下程序t #include main() { int m,n; scanf("%d%d",&m,&n); while(m!=n) {while(m>n){m=m—n;} while(n>m){n

有以下程序t #include main() { int m,n; scanf("%d%d",&m,&n); while(m!=n) {while(m>n){m=m—n;} while(n>m){n

admin2016-04-07  1

问题 有以下程序t
    #include
    main()
    {  int m,n;
    scanf("%d%d",&m,&n);
    while(m!=n)
    {while(m>n){m=m—n;}
    while(n>m){n=n—m;}
    }
    printf("%d\n",m);}
    该程序的功能是(    )。

选项 A、计算m和n的最小公倍数
B、计算m和n的最大公约数
C、计算m和n的差值
D、找出m和n中的较大值

答案B

解析 题目使用更相减损术求最大公约数,其思想:①任意给定两个正整数,判断它们是否都是偶数。若是,则用2约简,若不是则执行第二步。②以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。因此。故答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/JkDp777K
0

随机试题
最新回复(0)