角谷定理:对于一个大于1的整数n,如果n是偶数,则n = n / 2。如果n是奇数,则n = 3 * n +1。反复操作后,n一定为1。
问题:给出一个数n,如果它能在x次角谷变换内变成1,那么就是成功的,否则就是不成功的
#定义递归函数,传入两个参数,number代表当前数字,times代表剩余次数
def kakutani(number, times):
if number == 1 and times >= 0:
return True
elif times == 0:
return False
else:
if number % 2 == 0: #偶数则直接除以2,'//'代表整除
return kakutani(number//2, times-1)
else: #奇数则乘3后再加1
return kakutani(number*3+1, times-1)
n, x = map(int, input().split()) #输入数据
if kakutani(n, x):
print("yes")
else:
print("no")