首页 > 试题广场 >

下面这段程序的功能是什么?( ) def f(a, .

[单选题]
下面这段程序的功能是什么?(    )
def f(a, b):
    if b == 0:
        return a
    else:
        return f(b, a%b)
    
a, b = input(“Enter two natural numbers: ”)
print f(a, b)



  • 求AB最大公约数
  • 求AB最小公倍数
  • 求A%B
  • 求A/B
a % b 是求余数
辗转相除法,又称欧几里得算法,以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。
发表于 2019-12-21 17:19:08 回复(5)
辗转相除法,求最大公约数
发表于 2019-08-17 10:37:43 回复(1)
原来公因数也叫公约数啊
发表于 2019-09-07 19:34:19 回复(0)
最小公倍数=两整数的乘积➗最大公约数
发表于 2019-09-14 22:49:06 回复(0)
辗转相除法,用每次的除数除以余数,值为0时退出,最后一个除数即为最大公约数
发表于 2019-09-27 23:37:04 回复(0)
假如a, b = 27, 18 即 f(a, b)=f(27, 18); if不成立,进else; f(b, a%b)=f(18, 27%18)即f(18, 9); 没有达到退出的条件,再调f(18, 9); f(b, a%b) = f(9, 18%9)即f(9, 0); b=0,if成立,输出a=9 即只有在a%b=0的时候,条件才成立,输出a
发表于 2021-10-04 23:47:19 回复(1)
其实是一个循环,直到最后的‘a%b’=0,才出来。即ab最大公约数
发表于 2019-08-16 14:46:07 回复(0)
a%b是求余数 碾转相除法,又称欧几里得函数,以除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。
发表于 2021-12-22 08:23:19 回复(0)
a % b 是求余数
辗转相除法,又称欧几里得算法,以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。
发表于 2022-03-30 19:58:37 回复(0)
辗转相除发:除数和余数轮流做除法运算,去a,b的最大公约数
发表于 2021-05-10 09:04:42 回复(0)
def f(a, b): if b == 0: return a else: return f(b, a%b)
a, b = input('Enter two natural numbers: ').split() print(f(int(a), int(b)))

发表于 2021-04-22 12:53:07 回复(0)
a%b是取余数,如果余数不为0,就把余数当做分子,循环计算
发表于 2020-01-13 13:09:26 回复(0)

辗转相除法: a>b>0 a与b的最大公约数等于 a%b 与b的公约数。 以此递归。 b 一定大于 a%b 所有是f(b,a%b)。

发表于 2020-01-09 02:30:17 回复(0)
辗转相除
发表于 2019-08-17 01:21:38 回复(0)
<p>**题目,天天玩文字游戏有意思?</p>
发表于 2020-08-18 15:43:19 回复(0)
什么叫最大公约数,最小公倍数我都忘了,对了,还有质数
发表于 2023-08-14 09:30:00 回复(0)
不理解
发表于 2023-04-05 03:44:29 回复(0)
用了个笨办法,举了个例子推出来的
发表于 2022-08-30 20:12:34 回复(0)
def f(a, b):
    if b == 0:
        return a
    else:
        # print(f(b,a%b))
        return f(b, a % b)


# a, b = input('Enter two natural numbers: ')
a = int(input('Enter natural numbers: '))
b = int(input('Enter natural numbers: '))
print(f(a, b))

输入a=24,b=6,进入循环,b≠0,else,返回a=b=6,b=a%b=0;再次进入循环,b=0,返回a. a=6.    相对于两者最大公因数
发表于 2022-08-07 22:16:31 回复(0)
辗转相除法!!!
老祖宗的智慧。
发表于 2022-07-28 15:01:31 回复(0)