|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- '''角谷猜想的内容是:任意给定一个正整数,若它为偶数则除以2,若它为奇数则乘以3再加 1,得到一个新的自然数,按照这样的方法计算下去,最终的结果必将是 1。
- 比如给定的自然数是5,则5*3+1=16 -> 16/2=8 -> 8/2=4 -> 4/2=2 -> 2/2=1
- 现在要求大家编写一个验证角谷猜想的程序。'''
- number = int(input("請輸入一個整數: "))
- print("\n")
- print("請輸入一個自然數:",number)
- while number%2 !=0: #當number%2 !=0時
- print (number,"*","3","+","1","=",int(number*3+1)) #輸出number*3+1=新number
- number = int(number*3+1) #新number賦值
- while number%2 == 0: #新number如果%2==0時
- print (number,"/","2","=",int(number/2)) #輸出新number/2=number
- number = int(number/2) #新number賦值
- while number == 1: #最後如number==1時
- break #跳出循環
复制代码
想請問一下為什麼不會一直跌落循環入面呢, 請問思路有沒有錯到? 代碼又不能走了
你的程序并不在一个循环内,修改如下:
- number = int(input("請輸入一個整數: "))
- print("\n")
- print("請輸入一個自然數:",number)
- while True:
- if number%2 !=0: #當number%2 !=0時
- print (number,"*","3","+","1","=",int(number*3+1)) #輸出number*3+1=新number
- number = int(number*3+1) #新number賦值
- if number%2 == 0: #新number如果%2==0時
- print (number,"/","2","=",int(number/2)) #輸出新number/2=number
- number = int(number/2) #新number賦值
- if number == 1: #最後如number==1時
- break #跳出循環
复制代码
运行结果:
- 請輸入一個整數: 5
- 請輸入一個自然數: 5
- 5 * 3 + 1 = 16
- 16 / 2 = 8
- 8 / 2 = 4
- 4 / 2 = 2
- 2 / 2 = 1
复制代码
|
|