【发布时间】:2019-06-29 03:33:04
【问题描述】:
我正在尝试解决 Java Codewars 上连续 Fib 数字的乘积。 示例测试运行良好,但是当我单击尝试时,它会超时。
我的错误可能是什么?
你可以在这里找到任务详情:https://www.codewars.com/kata/product-of-consecutive-fib-numbers
public class ProdFib {
public static long[] productFib(long prod) {
int a = 0;
int ta, ta2= 0;
int a2 = 1;
while (a * a2 <= prod){
ta = a;
ta2 = a2;
a2 = a + a2;
a = ta2;
if(a * a2 == prod){
long[] re = new long[]{a,a2,1};
return re;
}
if(a * a2 > prod){
long[] re = new long[]{a,a2,0};
return re;
}
}
return null;
}
}
【问题讨论】:
-
"示例测试运行良好" - 请在您的代码中显示。 “当我点击尝试” - 不知道这是什么意思
-
你知道代码战使用的测试输入吗?
-
它针对完整的测试套件运行我的代码,所以基本上 2 个测试运行成功,其他测试超时
-
@DávidKatona 当你使用这个时会发生什么:ideone.com/RQVeCR,这是我根据你的方法制作的缩小版
-
public void test1() { long[] r = new long[] {55, 89, 1}; assertArrayEquals(r, ProdFib.productFib(4895));