我想创建一个程序,它会根据以下算法给出任意给定数量的最少可能移动次数,但我似乎没有得到任何地方,因为似乎有一个无限循环的地方,我猜测这是我作为我一直在使用他们函数似乎会导致无限循环?
如果有人能说明什么我做错了它,将不胜感激
这里才刚刚开始是我的代码:
num = 4
x = 0
def div3(num):
n3 = num/3
n3 = n3 + n3
num = num - n3
print("DIV3")
return num
def div2(num):
num = num/2
print("DIV2")
return num
def min1(num):
num = num - 1
print("MIN1")
return num
while num != 0:
if num/3 % 1 == 0:
div3(num)
x = x + 1
print(x)
elif num/2 % 1 == 0:
div2(num)
x = x + 1
print(x)
else:
min1(num)
x = x + 1
print(x)
print(x)
您尚未将全局范围中的num分配给新值。将'div3(num)'改为'num = div3(num)'。 – user824294
你从一个函数返回一个值,但你永远不会在呼叫站点上使用它。试着做'num = div2(num)'。 – 9000