下列程序的作用是求两个正整数m,n的最大公约数,请补充程序。def gcd(m,n): if m<n: m,n=n,m if m%n==0: ① else: return ② ans=gcd(84,342)print(ans)
举一反三
- 有以下递归函数求最大公约数的程序, 则程序的执行结果是( )。#include<stdio.h>int gcd(int m, int n){ int g; if (n == 0) g=m; else g=gcd(n,m%n); return (g); }void main( ){ int m=21,n=7; printf(“%d”,gcd(m,n)); }
- 下列计算最大公约数的递归过程,正确的是___________。 A: Sub gcd(ByVal m%, ByVal n%) Dim r% r = m n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Sub B: Sub gcd(ByVal m%, ByVal n%) Dim r% r = m Mod n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Sub C: Function gcd%(ByVal m%, ByVal n%) Dim r% r = m n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Function D: Function gcd%(ByVal m%, ByVal n%) Dim r% r = m Mod n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Function
- 正整数M和N(M大于等于N),则最大公约数gcd的范围是()。
- 下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。 #include main() {int r,m,n; scanf("%d%d",&m,&n); if(m 【1】r=m,m=n,n=r;【2】m%n;
- 下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。#includemain(){intr,m,n;scanf("%d%d",&m,&n);if(m A: 【1】r=m,m=n,n=r;【2】m%n; B: 【1】m%n;【2】r=m,m=n,n=r; C: 【1】r=m,m=n,n=r;【2】n%m; D: 【1】n%m;【2】r=m,m=n,n=r;