java – Project Euler(P14):递归问题

前端之家收集整理的这篇文章主要介绍了java – Project Euler(P14):递归问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

嗨我正在项目Euler中进行Collat​​z序列问题(问题14).我的代码适用于低于100000的数字,但是数字越大,我的堆栈溢出错误.

有没有办法可以重新计算代码以使用尾递归,或防止堆栈溢出.代码如下:

import java.util.*;

public class v4
{

   // use a HashMap to store computed number,and chain size 

   static HashMap
最佳答案
你的问题不是堆栈的大小(你已经记住了值),但是

>序列中某些数字的大小,和
> 32位整数的上限.

暗示:

public static int seqCount(int n)
{
   if(hm.get(n) != null) {
       return hm.get(n);
   }
   if (n < 1) {
      // this should never happen,right? ;)
   } ...
   ...

这应该是足够的:)

附:你会在很多项目的euler问题中遇到对BigNums的需求……

猜你在找的Java相关文章