原题:
给出一个循环公式,对于一个整数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) #取最大值
。。。