首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基本java递归错误

基本java递归错误
EN

Stack Overflow用户
提问于 2017-05-21 16:53:00
回答 1查看 90关注 0票数 0
代码语言:javascript
运行
AI代码解释
复制
public static long fibby(long n){
        if (n == 0){
            return 1;
        }   
        return (fibby(n/4))+(fibby(3*n/4)); 
    }    
public static void sparsetablegen(int start, int end){

          long fibbyOut = fibby(start);
          long lastFibbyOutput = fibbyOut;
          System.out.println(start+" "+fibbyOut);

          if(start != end){
              sparsetablegen(start+1, end);
              if (lastFibbyOutput == fibbyOut){
                  return;
              }
          }
    }

免责声明:这是我的java项目的作业,我尝试过多种方法,但无法找到可行的解决方案。我将发布我对代码的理解,以及哪些不正常工作。

我的表应该做的是接受值,从"int start“开始,在int "end”处完成,然后这些值将通过我的"fibby“函数来求解。然后,它应该并排打印"start“和fibbyOut的值,直到到达"end”为止。我要做的是跳过fibbyOut的任何重复值,例如:1 -> 2 2 -> 3 3 -> 4 4 -> 6 5 -> 6 6 -> 8

因此,我想跳过开始值5,因为4的fibbyOut是6,这是一个重复的值。所以我应该看到1-> 2-> 3-> 4-> 6-> 8

我知道这是一个非常基本的问题,但我似乎无法理解如何删除fibbyOut的重复值。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-21 17:04:22

大量编辑:在了解了问题的真正所在之后,我输入了以下内容:

代码语言:javascript
运行
AI代码解释
复制
package Main;

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Long> outputs = new ArrayList<>();
        table(0, 8, outputs);
    }

    public static void table(int start, int end, List<Long> outputs) {
        outputs.add(fibby(start));
        long lastFibbyOutput = outputs.get(outputs.size() - 1);

        for(int i = outputs.size() - 2; i >= 0; i--) {
            if(outputs.size() == 1) {
                System.out.println(start + " " + lastFibbyOutput); //Always print the first time because it will be a unique value.
                break;
            } else if(outputs.get(i) == lastFibbyOutput) {
                //One of the values matches a previous one, so we break
                break;
            }

            //We're at the end without breaking, so we print.
            if(i == 0) System.out.println(start + " " + lastFibbyOutput);
        }

        if(start == end) {
            return;
        }

        start++;
        table(start, end, outputs);
    }

    public static long fibby(long n) {
        if(n == 0) return 1;

        return (fibby(n/4) + fibby(3 * n / 4));
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44103217

复制
相关文章
Java递归写法_java递归调用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
1.6K0
基本算法之-递归
俗话说,大事化小。递归算法也是分治的思想。我国古代的愚公移山,就是这种递归。子又生孙,孙又生子。
赵云龙龙
2019/12/25
9810
基本算法之-递归
JAVA递归
     //斐波那契      // num 第几个数      // search(num - 1)临近的第一个+move(num - 2)临近的第二个     public static int search(int num) {         if (num == 1 || num == 2) {             return 1;         } else {             return search(num - 1) + search(num - 2);         }     }
用户2192970
2019/02/22
1K0
java递归查询父节点_java递归例子
设计:用户设置了教材后,首次登录,进行章节设置时。默认为用户选择第一章、第一课、第一节。
全栈程序员站长
2022/11/04
2.3K0
Java递归 通过递归实现累加
什么是递归? 在 Java 当中 递归就是方法调用自身方法,就叫做递归 递归很占用内存,开发中能不用则不用 递归比较占用内存,能 用for循环解决尽量不用递归,特殊情况除外。 递归需要有结束条件 递归一定 要有结束条件,否则一定会造成内存溢出错误。 但是即使有溢出结束条件,递归的时候也有可能造成内存溢出错误。原因是递归太深了。 下面是Java递归实现累加的方法 /* * 本文件为java 使用递归实现累加 */ public class RecursionTest{ public stat
吃猫的鱼Code
2023/02/02
1.2K0
java递归下降分析_JAVA中的递归下降
// These token indicates end-of-expression
全栈程序员站长
2022/07/04
1.1K0
java中的递归算法_java递归算法详解
Java中的递归算法虽然简单,但想要精通也是有着一定的难度的,本篇文章我们就来详细了解下递归算法。
全栈程序员站长
2022/09/08
1.6K0
Java递归实例
/** * 深度向下查询parentId * * @param calltext 调用上下文,必填 * @param parentId 父单元Id * @param parentIds 部门id集 * @return 父部门下所有层级子部门id集合 */ public List<Department> depthFindParentId(String parentId, List<Department> units) {
JQ实验室
2022/02/10
9330
【java】【递归】利用递归求数组和
public class h { public static int f(int[] a,int begin){ if(begin == a.length) return 0; int x = f(a,begin+1); return x+a[begin]; } public static void main(String[] args){ int[] a={1,2,3,4,5,6,7,8,9,10};
Regan Yue
2021/09/16
1.5K0
python递归次数限制引起的错误
使用BeautifulSoup时,可能会抛出如下错误: RecursionError: maximum recursion depth exceeded while calling a Python object 查看系统递归限制,调大即可: sys.getrecursionlimit() 1000 sys.setrecursionlimit(2000)
py3study
2020/01/15
1.2K0
java 递归函数
一、递归函数,通俗的说就是函数本身自己调用自己… 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数。。这就是递归
全栈程序员站长
2022/07/12
8190
java递归和迭代_Java中的迭代与递归
有很多方法来计算阶乘。有肯定数学基础的人都知道n!=n*(n-1)!因而,代码的实现可以直接写成:
全栈程序员站长
2022/09/14
2.1K0
java递归和迭代_Java中的迭代与递归
Python的最大递归深度错误 “max
  今天在写爬虫的时候,发现了一个事情,使用str方法强制转换一个BeautifulSoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while calling a Python object”,意思大致是“当调用该对象超过最大递归深度”
py3study
2020/01/08
1.4K0
java递归生成树结构_java递归生成树形菜单
public List<Tree> getAllCommType(){ List<Tree> treeList=new ArrayList<Tree>(); //取到父节点id为0,只有一个 List<Commodity_type> typeList=commType.getAllCommodityType(); for(Commodity_type type :typeList){ Tree tree=new Tree(); tree.setId(type.getType_id()+””); tree.setPid(type.getParent_id()); tree.setText(type.getName()); List<Commodity_type> childList=commType.listChildren(type); if(childList.size()>0){ tree.setState(“close”); tree.setChildren(getAllTreeList(childList)); } treeList.add(tree); } return treeList; }
全栈程序员站长
2022/10/01
2.4K0
java递归生成树形菜单_java递归无限层级树
完整示例代码地址如下: https://github.com/Dr-Water/springboot-action/tree/master/springboot-shiro
全栈程序员站长
2022/09/29
3.2K0
java递归生成树形菜单_java递归无限层级树
递归求数组的和_java递归教程
给定一个含有n个元素的整型数组a,求a中所有元素的和。问题的难点在于如何使用递归上。如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件,首先如果数组元素个数为0,那么和为0。同时,如果数组元素个数为n,那么先求出前n-1个元素之和,再加上a[n-1]即可。此时可以完成递归功能。总之,递归就是在某个函数的执行过程中首先判断它的终止条件参数,终止条件参数满足终止条件则执行完毕,终止条件参数不满足终止条件则调用它自身执行某项运算,比如这里求和就是执行加法。凡是递归一定都有一个参数作为终止条件,比如这里是数组中未加入求和队列的元素个数,初始为数组长度。因为终止条件参数的初始值为数组长度,所以从数组的最后一个元素作为求和队列的第一个元素开始,每递归一次就将数组中的一个元素划归到求和队列中,同时将终止条件参数减1,直到其未为0,标明所有元素都已加入求和队列,返回求和队列的值即可。可见递归至少有两个参数,终止条件参数以及递归对象。
全栈程序员站长
2022/09/28
1.3K0
递归求数组的和_java递归教程
Java递归调用_递归算法1加到100
1)各种数学问题如: 8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题 (google编程大赛)
全栈程序员站长
2022/09/28
6980
java 递归方法卡住_递归算法怎么理解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
9350
Java(File类、递归)
Java把电脑中的文件和文件夹(目录)封装成一个File类,我们可以使用File类对文件和文件夹进行操作;
全栈开发日记
2022/05/12
5010
Java递归基础案例
递归最直接的小案例,希望能让大家对递归稍微有一些入门的理解。 package Action; public class test { public static void main(String[] args) { //静态的直接调用即可 f(10); } public static int f(int i){//参数 System.out.println(i); if (i==0){ // 明确的递归终止条件 System.out.println("因
红目香薰
2022/11/29
3690

相似问题

基本Java递归方法

55

Java上的基本递归

19

java中的基本递归

21

Java中的基本递归算法

12

使用if else语句的基本递归(java)

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文