有效或混乱地使用函数调用

问题描述

我正在做一本书的练习,要求我执行Collat​​z序列

Collat​​z猜想是数学中的一个猜想,它涉及一个定义如下的序列:以任何正整数n开头。然后从上一项按如下方式获得每个项:如果前一项是偶数,则下一项是前一项的一半。如果前一项是奇数,则下一项是前一项加3的3倍。推测是,无论n的值是多少,该序列始终会达到1。

并打印结果。

为了我自己,我还想记录在达到1之前需要执行的迭代次数,并将所有结果一路保存到列表中。

下面是我编写的代码。您可以从任务中判断我是新手,因为这可能是相当基础的工作。我的程序可以正常工作并提供我想要的输出。我想知道的是:这是对函数的很好使用,以实现我的目标,还是参数/参数不必要地复杂?

def collatz(number):
    
    if number % 2 == 0:
        number = number // 2
        return number

    else:
        number = (3*number + 1)
        return number


def try_again(a,clist,iterations):
    new_result = collatz(a)
    condition(new_result,iterations)


def condition(a,iterations):
    clist.append(a)
    if a == 1:
        finished(iterations,clist)
    else:
        iterations += 1
        try_again(a,iterations)


def finished(iterations,clist):
    print(f"finished after {iterations} iterations")
    print(clist)

def main():
    clist = []
    number = int(input("Collatz seed: "))    
    a = collatz(number)
    condition(a,iterations = 1) 


if __name__ == "__main__":
    main()


谢谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...