这是我的代码,它将猜想应用于任何给定的数字:
def collataz(number):
while number > 1:
if number % 2 == 0 :
number = number //2
print(number)
elif number % 2 ==1 :
number = 3 * number + 1
print(number)
if number == 1 :
print("DONE!")
break
print('enter any number...!')
number=int(input())
collataz(number)
我想修改它,这样一旦它运行,它就会打印每个数字,然后再打印下一个数字。你知道吗
可以这样解决:使用您填写的内部列表并返回它:
输出(678作为输入):
在无限理性存在之前,你不可能运行它 地址:
您可以尝试许多数字:
你也可以把结果储存在字典里,但有时你的电脑资源会满的。你知道吗
科拉兹有趣的一点是,最长的“行”不一定是数字最高的那一行。Try 837799-据报道,它最长的起始值低于1000000,这主要是因为(https://projecteuler.net/problem=14)
您可能需要考虑一种回忆录来缩短计算时间。这里我们记录初始数字,如果数字的值低于该数字,则中断,因为我们已经看到了这些结果。你知道吗
当数字被打印出来时,它将返回一个对先前打印的序列的引用。要将其打印到无穷远,请参阅@Bill the Lizard's answer。你知道吗
这是前20行。你知道吗
您只需将对
collatz
函数的调用放入一个无限循环,而不是要求用户输入一个数字。你知道吗相关问题 更多 >
编程相关推荐