python验证角谷_角谷猜想-随心随性无为而为-51CTO博客

  • Post author:
  • Post category:python


问题描述:

角谷猜想的内容为:任意给定一个自然数,若它为偶数则除以2,若它为奇术则乘3加1,得到一个新的自然数。按照这样的计算方法计算下去,若干次后得到的结果必然为1。

编写程序对角谷猜想的正确性加以验证。

我的代码:n=int(raw_input(“please input a number: “))

while True:

if n%2==0:

n=n/2

else:

n=n*3+1

if n==1:

print “Corner Valley conjecture is OK!!!”

break

我的思路:

整个程序并不难,按照描述一步一步来即可;首先判断数是否为偶数,如果是偶数就让原数除以2并让新值覆盖,否则让原数乘以3加1并让新数覆盖,在每一次操作后判断值是否为1,;

示例代码:def fun(n):

print n,

while n != 1:

n = 3 * n + 1 if n % 2 else n / 2

print ‘finished’

for i in xrange(2, 1000):

fun(i)

示例代码也很好懂,就不说了;