如何在Python中同时使用if和while循环?
基本上,我想做的是生成一个随机数(这个我知道怎么做)。如果这个数字是偶数(也就是 number%2 == 0
),那么就把它除以2;然后如果得到的数字是奇数(也就是 number%2 > 0
),那么就乘以3再加1。如果这听起来不太明白,下面有个例子:
- 先选一个数字,比如26(这是偶数,所以除以2)
- 得到的结果是13(这是奇数,所以乘以3再加1)
- 得到的结果是40(这是偶数,所以再除以2)
继续这个过程,直到数字变成1为止。
我不太确定该用什么循环来实现这个,所以任何帮助都非常感谢! :)
2 个回答
0
因为你不知道要多少步才能把这个number
变成一,也就是说你不知道需要多少次循环,所以可以用一个while
循环来实现:
number = # random number
while number != 1:
if number % 2:
number *= 3
number += 1
else:
number /= 2
或者还有另一种方法:
number = # random number
while True:
if number == 1:
break
elif number % 2: # odd
number *= 3
number += 1
else: # even
number /= 2
4
number = # generate random number
while number != 1:
if number % 2: # if number is odd, multiply by 3, add 1
number *= 3
number += 1
else: # if number is even, divide by 2
number /= 2
如果你想的话,可以运行一些小代码来跟踪迭代次数:
num_iterations = 0
number = # generate random number
while number != 1:
num_iterations += 1
if number % 2:
number = number * 3 + 1
else:
number /= 2