课后作业第15讲中的最后一题
课后作业第15讲中的最后一题,我的代码是这样的n = int(input("请输入一个正整数:"))
while n > 0:
if n%2==0:
n=n/2
print(n,"/2=",n/2)
else:
n=n*3+1
print(n,"*3+1=",n*3+1)
if n == 1:
break
但是正确代码如下所示,想问问我的代码为什么错??
n = int(input("请输入一个正整数:"))
while n > 0:
if n%2==0:
print(n,"/2=",n/2)
n=n/2
else:
print(n,"*3+1=",n*3+1)
n=n*3+1
if n == 1:
break 你先对 n 进行了操作。比如 n = 16,按你的程序,n 会先除以 2 变成 8,然后打印 8 / 2 = 4,但这显然是不对的。所以要先打印 16 / 2 = 8,然后再对 n 进行操作。 顺序不能反,否则n会变
n = int(input("请输入一个正整数:"))
while n > 0:
if n%2==0:
print(n,"/2=",n/2)#先打印,后更改
n=n/2
else:
print(n,"*3+1=",n*3+1)#同理
n=n*3+1
if n == 1:
break
页:
[1]