实验吧编程题:循环

原题:

给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1,当n为偶数时,n=n/2,如此循环下去直到n=1时停止。

现要求对两个整数i = 900、j = 1000,输出i、j之间(包括i、j)的所有数进行上述循环时的最大循环次数(包括n和1)。

格式:CTF{xxx}

 

python实现:

 1 #-*-coding:utf-8-*-
 2 #博客园 hell0_w
 3 
 4 def panduan(n):
 5     if n % 2 == 1:
 6         n = 3 * n + 1
 7     else:
 8         n = n / 2
 9     return n
10 
11 def cishu(n):
12     num = 0
13     while n != 1:
14         num = num + 1
15         n = panduan(n)
16     return num + 1    #加上判断n是否为1的次数
17 
18 list = []
19 for i in range(900,1001 ):
20     num = cishu(i)
21     list.append(num)    #把各个数的循环次数放入列表
22 print max(list)        #取最大值

 

。。。

posted @ 2017-10-04 17:27  hell0_w  阅读(313)  评论(0编辑  收藏  举报