|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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)
复制代码 |
|