• 2021-04-14
    编写用辗转相除法求两个数最大公约数的函数,调用该函数求两个数的最大公约数和最小公倍数。 #include "stdio.h" int gcd(int m,int n) { int r; do {【1】; m=n; n=r; } while(r!=0); return 【2】 ; } main() { int a,b,x,y; scanf("%d%d",&a,&b); x=gcd(【3】); y=a*b/x; /*求a和b的最小公倍数*/ printf("GCD=%d,LCM=%d\n",x,y); }
  • r=m%n  m ; (m)  a,b ; b,a

    内容

    • 0

      下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。 #include main() {int r,m,n; scanf("%d%d",&m,&n); if(m 【1】r=m,m=n,n=r;【2】m%n;

    • 1

      通过方法gcd求两个数的最大公约数。public static void main(String[] args) { int a=24,b=15; System.out.println(a+"和 "+b+"的最大公约数是:"+ ⑥ );//调用方法gcd}static ⑦(int a,int b){//定义方法gcd int k; do{ k=⑧; a=b; b=k; }while(⑨); ⑩;//返回最大公约数 }}

    • 2

      以下程序中,运行结果是36的有()。 A: include <stdio.h> B: define M(y) y*y int main() { printf("%d\n",M(6+0)); return 0; } C: include <stdio.h> D: define M(y) (y)*(y) int main() { printf("%d\n",M(6+0)); return 0; } E: include <stdio.h> int M(int y) { return y*y; } int main() { printf("%d\n",M(6+0)); return 0; } F: include <stdio.h> int M(int y) { return (y)*(y); } int main() { printf("%d\n",M(6+0)); return 0; }

    • 3

      求两个正整数x和y的最小公倍数,请填空。 #include "stdio.h" int main { int x = 24, y = 31, t, min, i; if(x > y) {t = x; x = y; y = t;} for (________; i >= y; i--) { if(________) min = i; } printf("min is : %d", min); return 0; }

    • 4

      设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include int MaxCommonFactor(int a, int b);int main(){ int a, b, x; printf(Input a,b:); scanf(%d,%d, &a, &b); x =_______________ ; if (x != -1) { printf(MaxCommonFactor = %d , x); } else { printf(Input error! ); } return 0;}//函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数int MaxCommonFactor(int a, int b){ int r; if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数 do{ ____________; a = b; _____________; }while (__________); return a; }