Python中的Collatz序列
假设我们有一个正整数n,我们必须找到其Collatz序列的长度。我们知道Collatz序列是按顺序生成的,当n等于n时,n=n/2,否则n=3n+1。当n=1时,该序列结束。
因此,如果输入像n=13,则输出将是10,因为[13、40、20、10、5、16、8、4、2、1]是这些序列。
为了解决这个问题,我们将遵循以下步骤-
如果num与0相同,则
返回0
长度:=1
而num与1不相同
num:=(num/2)时nummod2为0否则(3*num+1)
长度:=长度+1
返回长度
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, num):
if num == 0:
return 0
length = 1
while num != 1:
num = (num / 2) if num % 2 == 0 else (3 * num + 1)
length += 1
return length
ob = Solution()print(ob.solve(13))输入值
13
输出结果
10
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语