当前位置: 首页 > 知识库问答 >
问题:

Codewars索引越界错误尽管它工作,Java Fibonacci[重复]

单于善
2023-03-14
      import java.util.*;
      public class Solution {
      
        public static void main(String[] args) {
          int secLen = 2;
          solve(secLen);
        }
        public static String solve(int sequenceLength) {
          int sec = sequenceLength+1;
          String[] fibSequence = new String[sec];
          fibSequence[0] = "0";
          *fibSequence[1] = "01";*
          
      
          for(int i = 2; i <= sequenceLength;i++){
            fibSequence[i] = fibSequence[i-1] + fibSequence[i-2];
          }
           
          
          
          System.out.println(fibSequence[sequenceLength]);
          //return fibArray;
          return fibSequence[sequenceLength];
        }
        
      } 

CodeWars告诉我在第15行有一个索引出界错误。但是这是没有意义的,因为当我在IDE中测试它时,一切都可以完美地工作。

共有1个答案

魏毅
2023-03-14

为什么你的FibSequence数组是String类型。我假设你想计算这些值的总和。使其为int类型,因为字符串是不可变的。还要处理输入为null或负数的情况。

 类似资料:
  • CodeWars告诉我在第15行有一个索引出界错误。但是这是没有意义的,因为当我在IDE中测试它时,一切都可以完美地工作。

  • 我不明白为什么这个方法不起作用。它会编译,但会引发运行时错误。

  • 固定的: 我删除了while循环并添加了 我正在尝试向一个单词中随机添加一个额外的字母副本(介于0-8之间)。实例does可能会变成dooee或doess。 我的函数有时会工作,但总是会因越界索引错误而崩溃。 我假设我需要在某个时刻检查ArrayList中的空值。我试着用和if来包装我的while语句,以检查它,但没有任何改进。有什么建议吗?

  • 我犯的错误 我的密码 我试图将数组的最后5个元素存储在temp 2中。那我就换了。有更简单的方法吗?将数组的前五个元素与后五个元素切换?你会如何用for循环切换它们?

  • 所以基本上我应该做的是,我应该得到一个字符串的数组列表,用两个字符串填充它,然后比较它们。例如,如果一个字符串是“1,2,3,4”,第二个字符串是“7,6,2,8,1”,那么它应该打印出“1,2”,因为它打印出的数字相似。但我遇到了和arrayindexoutofbounds异常,我不知道如何修复它。此外,如果你有任何可能缩短此代码的提示,也请告诉我。我有一个习惯,让我的代码超长。

  • 我一直在四处寻找是否有任何东西可以帮助我,但我不太了解人们的回答,任何我所了解的似乎都不能解决问题!所以基本上正如标题所说,我得到了一个数组索引越界异常,但我不知道为什么。非常感谢任何帮助。 代码: