最大循环长度Python实现

这篇博客介绍了一道关于最大循环长度的算法题,该题涉及一个简单的递归算法,该算法对于所有整数输入n最终都会终止于1。博客提供了Python实现来找出在1之前所有整数的循环长度,并解释了如何处理输入整数对以找到最大循环长度。通过示例输入和输出,展示了算法的运行效果。
摘要由CSDN通过智能技术生成

一道算法题:最大循环长度,利用Python实现

题目描述

计算机科学中的问题通常被归类为属于特定类别的问题(例如NP,不可解决,递归)。在此问题中,您将分析一种算法的属性,该算法的分类对于所有可能的输入都不是已知的。
考虑以下算法:
1.输入
2.打印
3.如果n = 1,则停止
4.如果n为奇数,则n← 3n +1
5.其他n←n / 2
6.转到2
给定输入22,将打印以下数字序列
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
据推测,对于任何整数输入值,以上算法将终止(打印1时)。尽管算法很简单,但尚不清楚此猜想是否成立。但是,已经对所有整数n进行了验证,使得0 <n <1,000,000(实际上,还有更多的数字)。
给定输入n,可以确定在打印1(包括1)之前打印的数量。对于给定的n,这称为n的循环长度。在上面的示例中,循环长度22为16。
对于任何两个数字i和j,您将确定i和j之间(包括i和j)的所有数字的最大循环长度。
输入项
输入将由一系列整数对i和j组成,每行一对整数。所有整数将小于10,000且大于0。
您应该处理所有整数对,并为每对整数确定i和j之间(包括i和j)的所有整数的最大循环长度。您可以假定没有操作会溢出32位整数。
输出量
对于每对输入整数i和j,您应该输出i,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值