题目
考拉兹猜想(Collatz conjecture)又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2。
如此循环,最终都能得到1。编写一个程序,输入一个正整数,打印其考拉兹序列。
输入格式:
1个>1的正整数
输出格式:
以逗号分隔的考拉兹序列。
输入样例:
5
输出样例:
16,8,4,2,1
解题
题目代码:
n = int(input())
while n > 1:
if n % 2 == 0:
n /= 2
else:
n = n * 3 + 1
if n > 1:
print("%d"%n,end = ',')
else:
print("%d"%n)
代码解释:
根据题目要求读入一个整数,通过while循环对它的奇偶性进行判断,并做出相应的处理
然后是通过if-else进行输出的判断,看是否要输出末尾的","号
代码内相关内容解释:
print()函数
print()函数默认末尾是\n换行符,解题代码中给出了end = ','即可将输出的字符在同一行输出
总结
这道题对while if-else print都有考查,总体来说难度适中,仔细一点解题就行了