Consider the following algorithm to generate a sequence of numbers.Start with an integer n.If n is even, divide by 2.If n is odd, multiply by 3 and add 1.Repeat this process with the new value of n, terminating when n = 1. For example,the following sequence of numbers will be generated for n = 22:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
It is
conjectured (but not yet proven)that this algorithm will terminate at
n = 1for every integer
n.Still, the conjectureholds for all integers up to at least
1, 000, 000.
For an input n, the cycle-length of n isthe number of numbers generated up to andincluding the 1.In the example above, the cycle length of 22 is 16.Given any two numbers i and j, you are to determine the maximum cyclelength over all numbers between i and j, including both endpoints.

这篇博客介绍了如何用C语言实现3n+1问题的算法,解决在编程挑战中遇到的Time limit exceeded和wrong answer错误。作者通过优化while循环条件、处理输入数据顺序以及利用缓存来提高程序效率和正确性。
最低0.47元/天 解锁文章
1082

被折叠的 条评论
为什么被折叠?



