算法描述
The following iterative sequence is defined for the set of positive integers:
n n/2 (n is even)
n 3n + 1 (n is odd)
Using the rule above and starting with 13, we generate the following sequence:
13 40 20 10 5 16 8 4 2 1
It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1.
Which starting number, under one million, produces the longest chain?
NOTE: Once the chain starts the terms are allowed to go above one million.
问题分析:
从1到1000000依次计算其长度,然后在查找的过程中比较,计算,这个最简单。
当然了~从小到大计算的过程中,肯定会有重复计算的。
例如:
13 ->40 ->20 ->10 ->5 ->16 ->8 ->4 ->2 ->1得到了长度10,
但是之前计算10 ->5 ->16 ->8 ->4 ->2 ->1得到了长度7
这样计算13便可以通过13 ->40 ->20的长度 + 10的长度 = 10
public static Long count_chain(Long number) {
Long result = 0L;
Long init = number;
while (number != 1) {
if (!total.containsKey(number)) {
if (number % 2 == 0) {
number = number / 2;
result++;
} else {
number = 3 * number + 1;
result++;
}
}else{
result += total.get(number);
total.put(init, result);
break;
}
}
total.put(init, result);
return result;
}
public static long find_max(){
long maxLength = 0L;
long maxNumber = 0L;
Iterator<Long> iter = total.keySet().iterator();
while(iter.hasNext()){
long key = iter.next();
long value = total.get(key);
if(value>maxLength){
maxLength = value;
maxNumber = key;
}
}
return maxNumber;
}
分享到:
相关推荐
14. 主键的建立方法:三种(Problem 14) 主键可以使用 PRIMARY KEY 约束、UNIQUE 约束或索引来建立。 15. 视图上的限制操作:不能定义新的基本表(Problem 15) 视图是一个基于表的虚拟表,不能在视图上定义新的...
14. **Problem 14: 长链回文子串** - 知识点:字符串处理,回文判断,循环结构。 - 解决方法:计算每个数的回文子串长度,找到最长的那个。 通过解决这些问题,你可以掌握R语言的基本语法、数据类型、控制流、...
Chapter 14. Web-Based Problem Solving Process Chapter 15. Software Tool Development Illustration Chapter 16. Software Tools for Correct Program Development Part 5 Computer Operation by Problem ...
13.Algorithm Gossip: 背包问题(Knapsack Problem 14.Algorithm Gossip: 蒙地卡罗法求 PI 15.Algorithm Gossip: Eratosthenes 筛选求质数 16.Algorithm Gossip: 超长整数运算(大数运算). 17.Algorithm Gossip: 长...
14. If the two ISPs do not peer with each other, then when they send traffic to each other they have to send the traffic through a provider ISP (intermediary), to which they have to pay for carrying ...
《C++ Programming From Problem Analysis to Program Design 8th》是一本深入浅出的C++编程教程,由资深计算机教育家Zelle撰写。该书旨在帮助读者从问题分析到程序设计的整个过程,全面掌握C++语言。最新版更新至...
13. 成为问题的原因 - Become a problem 14. 担忧时间 - Worry about time 15. 陷入困境 - Get into trouble 16. 允许某人做某事 - Allow sb. to do sth. 17. 对某人要求严格 - Be strict with sb. 18. 在外呆的很迟...
在实现算法时,需要注意效率,因为题目允许的时间限制是14秒(对于Java等非C++语言是7秒),内存限制是512MB。因此,需要优化算法,避免不必要的计算和空间浪费。可以考虑使用高效的数据结构和优化的合并策略,如...
14 Map Coloring & Chromatic Number......Page 271 iLLusTrATinG The TheOrem......Page 273 eArLy ATTemPTs AT PrOOf......Page 275 summAry Of evenTs ThAT LeD TO The DefiniTiOn AnD sOLuTiOn TO The fOur ...
Benny Kjr Nielsen and Allan Odgaard fbenny, dug@diku.dk February 14, 2003 The main subject of this thesis is the so-called nesting problem, which (in short) is the problem of packing arbitrary two-...
机器学习基石10 - 1 - Logistic Regression Problem (14-33).mp4
int M, g, a[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, ag[20], c[20]; ``` - 初始化数组`a`,用于存储可能填入环中的数字。 - `ag`数组用于标记数字是否已被使用。 - `c`...
#### 第14章:递归与栈(p.801) 递归是一种强大的编程技术,可以简化许多算法的设计。本节解释了递归的基本原理以及如何使用递归函数。 - **递归**:函数调用自身的过程。 - **递归基**:递归终止条件,确保递归...
Chapter 14. Exception Handling. Chapter 15. Recursion. Chapter 16. Searching and Sorting. Chapter 17. Linked Lists. Chapter 18. Stacks and Queues. Appendix A. Reserved Words. Appendix B. Operator ...
by the standard IEEE benchmark systems with 14, 30, 57, 118, and 300 buses as well as several randomly generated systems. Since this condition is hard to study, a sufficient zero-duality-gap condition...
CHAPTER 14: STRING ALGORITHMS CHAPTER 15: ALGORITHM DESIGN TECHNIQUES CHAPTER 16: BRUTE FORCE ALGORITHM CHAPTER 17: GREEDY ALGORITHM CHAPTER 18: DIVIDE-AND-CONQUER, DECREASE-AND-CONQUER CHAPTER 19: ...
#### Chapter 14: Recursion This chapter introduces recursion, a powerful programming technique: - **Recursive Functions**: Explanation of recursive functions, including base cases and recursive ...
标题 "0-1-knapsack-problem-master (14).zip" 提示我们这是一个关于 0-1 背包问题的项目,而描述 "近似求π" 可能意味着这个项目中包含了利用 0-1 背包问题的算法来估算圆周率 π 的一个实现。0-1 背包问题是一个...