一知半解讲python第12课:角谷猜想练习讲解

上节课我们用到了//和%两个运算符,大家一定还记得他们的作用。留的练习题“角谷猜想”相信你们也一定做出来了。下面我把我的做法和大家分享一下,看看你们的做法和我的有没有区别。如果有区别,又能够解决问题,你就厉害了!

每一个问题的程序实现方法都可能有很多种,这里面体现了编程习惯、思维习惯、算法效率等问题,可能你的比我的还要好。

#coding=cp936

#角谷猜想

n=int(input("请输入一个大于1的正整数"))

i=0

while n!=1:

if n%2==0:

n=n/2

else:

n=n*3+1

i+=1

print("需要经过",i,"次")

input()

编这个程序时我又做了一个拓展,想看看某一个范围的数的整体情况,于是写了这个程序,结果发现好像迭代次数杂乱无章,相邻的两个数很可能相差上百次,挺有意思的,你也去试试吧。

#coding=cp936

#万以内数角谷猜想验证版

begin=eval(input("起始值是:"))

end=eval(input("终止值是:"))

for n in range(begin,end):

i=0

a=n

while n!=1:

if n%2==0:

n=n/2

else:

n=n*3+1

i+=1

print(a,"需要经过",i-1,"次迭代")

input()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G10KMY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券