题目1:算法训练 5-1最小公倍数
解题思路
最大公约数:辗转相除法
- c = a%b
- c != 0 => c = b % c => …
最小公倍数: a*b/最大公约数
代码
# 最大公约数
def gcd(a, b):
c = a % b
while c != 0:
a = b
b = c
c = a % b
return b
a, b = map(int, input().split())
# 最小公倍数
lcm = a * b / gcd(a, b)
print(int(lcm))
题目2:算法训练 6-1 递归求二项式系数值
解题思路
递归,按照题目中的式子写判断即可
代码
def cnk(n, k):
if k == 0 or k == n:
return 1
else:
return cnk(n-1, k) + cnk(n-1, k-1)
k, n = map(int, input().split())
print(cnk(n, k))