函数:递归是神马 | 记录一下
本帖最后由 TC_DHL 于 2021-3-10 19:39 编辑#. 使用递归编写一个函数,利用欧几里得算法求最大公约数,例如 gcd(x, y) 返回值为参数 x 和参数 y 的最大公约数。
#这里求得了最大公约数,也增加了求得最小公倍数的值, 应该没有写错
#打印结果
#输入一个被除数: 135
#输入一个除数: 10
#最大公约数为:5, 最小公倍数为:270
def gys_gbs(x, y):
if y:
return gys_gbs(y, x%y)
else:
gbs = num1 * (num2 / x)
print('最大公约数为:%d, 最小公倍数为:%d' % (x, gbs))
num1 = int(input('输入一个被除数: '))
num2 = int(input('输入一个除数: '))
gys_gbs(num1, num2)
#刚刚加了一个循环, 就是可以一直计算想要的结果
continuenum = 1
while continuenum > 0:
num1 = int(input('输入一个被除数: '))
num2 = int(input('输入一个除数: '))
def gys_gbs(x=0, y=0):
if y:
return gys_gbs(y, x%y)
else:
gbs = num1 * (num2 / x)
print('最大公约数为:%d, 最小公倍数为:%d' % (x, gbs))
gys_gbs(num1, num2) 没用 笑星星 发表于 2021-3-10 15:44
没用
你觉得没用,你可以保持意见,但不用你说出来 我是初学者,我现在学递归,我把代码抄下来执行,但显示错误,就这意思 笑星星 发表于 2021-3-10 18:08
我是初学者,我现在学递归,我把代码抄下来执行,但显示错误,就这意思
我并没有使用IDLE, 你可以用pycharm来执行看下 笑星星 发表于 2021-3-10 18:08
我是初学者,我现在学递归,我把代码抄下来执行,但显示错误,就这意思
对不起
是我激动了{:10_266:}
页:
[1]