我已经为collat​​z模式编写了一个用于数字的python代码,我想计算达到1所需的步骤数我该怎么办?

问题描述

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)

解决方法

只需添加一个计数器

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) 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...