python求解答
def collatz(number):if number%2==0:
return number//2
else:
return 3*number+1
try:
input_number = int(input("请输入一个整数:"))
while True:
input_number=collatz(input_number)
print(collatz(input_number))
if input_number==1:
break
except:
print('出现错误!只支持输入整数!')
#问题:为啥输出的时候会多出4来?
请输入一个整数:8
2
1
4 为什么不调试一下呢。 if input_number==1:
break
print(collatz(input_number))
交换一下位置,看看是不是你想要的结果。其实最好就是自己调试。编程怎么可能不调试。 编程最好就是自己调试 算法就有问题,先改变然后输出一个改变后又改变的值,这么想都不符合逻辑
input_number=collatz(input_number)
print(collatz(input_number))
输出1时input_number的值是2,所以不能退出
输出4时input_number的值才是1 本帖最后由 公子如玉世无双 于 2020-12-17 23:24 编辑
def collatz(number):
if number%2==0:
return number//2
else:
return 3*number+1
try:
input_number = int(input("请输入一个整数:"))
while True:
input_number=collatz(input_number)
print(input_number)
if input_number==1:
break
except:
print('出现错误!只支持输入整数!')
因为两次函数调用,所以1又被改回去了 klamauk 发表于 2020-12-17 23:02
if input_number==1:
break
print(collatz(input_number))
可以了,嘻嘻,谢谢,新学的新手很多不明白的地方 因为1%2!=0叭
页:
[1]
2