|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
python作业015课中的角谷猜想:
- n = int(input("请输入一个正整数:"))
- while n > 0:
- if n%2==0 and n>1:
- n=n/2
- print(n,'/','2','=',n/2)
- else:
- n=n*3+1
- print(n,'*','3','+','1','=',n*3+1)
- if n == 1:
- break
复制代码
输入10:
请输入一个正整数:10
5.0 / 2 = 2.5
16.0 * 3 + 1 = 49.0
8.0 / 2 = 4.0
4.0 / 2 = 2.0
2.0 / 2 = 1.0
1.0 / 2 = 0.5
总是这样,我已经让他n>1了,这是为什么呢?
本帖最后由 isdkz 于 2023-2-4 21:01 编辑
因为你赋值的顺序跟打印的顺序反了
n = 2 的时候进入了 if 分支,然后 n = n / 2 ,所以 n 就成了 1
- 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
复制代码
|
|