我已经为number的collatz模式编写了一个python代码,我想计算它达到1所需的步骤数。我怎么做?

2024-06-02 05:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

def collatz(n):
    while n > 1:
        print(n, end=' ')
        if (n % 2):
            # n is odd
            n = 3*n + 1
        else:
            # n is even
            n = n//2
    print(1, end='')
 
 
n = int(input('Enter n: '))
print('Sequence: ', end='')
collatz(n)

Tags: inputifisdefelseintendeven
1条回答
网友
1楼 · 发布于 2024-06-02 05:22:49

只要加一个计数器就行了

def collatz(n):
    counter = 0
    while n > 1:
        counter += 1
        print(n, end=' ')
        if (n % 2):
            # n is odd
            n = 3*n + 1
        else:
            # n is even
            n = n//2
    print(1, end='\n')
    print("Number of steps until convergance :" + str(counter))
 
 
n = int(input('Enter n: '))
print('Sequence: ', end='')
collatz(n) 

相关问题 更多 >