加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:23:30 所属栏目:Java 来源:网络整理
导读:嗨我正在项目Euler中进行Collat??z序列问题(问题14).我的代码适用于低于100000的数字,但是数字越大,我的堆栈溢出错误. 有没有办法可以重新计算代码以使用尾递归,或防止堆栈溢出.代码如下: import java.util.*;public class v4{ // use a HashMap to store c

嗨我正在项目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的需求……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读