|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
×
讲解分支语句的课后练习题如下:
验证角谷猜想
角谷猜想的内容是:任意给定一个正整数,若它为偶数则除以 2,若它为奇数则乘以 3 再加 1,得到一个新的自然数,按照这样的方法计算下去,最终的结果必将是:
比如给定的自然数是 5,则 5 * 3 + 1 = 16 -> 16 / 2 = 8 -> 8 / 2 = 4 -> 4 / 2 = 2 -> 2 / 2 = 1。
现在要求大家编写一个验证角谷猜想的程序。
该题的答案如下:
n = int(input("请输入一个自然数:"))
while n > 0:
if n % 2 == 0:
print(n, "/2 = ", n // 2, sep='')
n = n // 2
else:
print(n, "*3+1 = ", n * 3 + 1, sep='')
n = n * 3 + 1
if n == 1:
break
运行结果如下:
请输入一个自然数: 5
5*3+1 = 16
16/2 = 8
8/2 = 4
4/2 = 2
2/2 = 1
我的困惑是:
1)为何在if和else的分支里的语句块最后不需要加上continue语句,好让判断完的语句返回到while循环语句进行第二轮判断.
2)我如果在if和else的语句块最后都加上continue语句的话,程序运行起来就会进入到死循环(请见截图),这是为什么?烦请大神指点,谢谢!
|
|