我做了斐波那契数列之类的方法;
public static int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
但是我需要在两个数字之间打印该系列,所以我写了一些代码,例如:
int q=0;
while(q<max){
if(fibonacci(q)<min){}
if(fibonacci(q)>max){break;}
if(fibonacci(q)<=max&&fibonacci(q)>=min)
System.out.print(fibonacci(q)+" ");
q++;
主方法中的此循环。我需要用一种方法来执行此操作,我的意思是两个函数都将使用同一方法。
一个数字N
是斐波那契数字,如果是(5*N^2+4)
或是(5*N^2-4)
一个完美的正方形。我猜您可以使用此属性在min
和之间打印所有斐波那契数max
。
例如,5
是一个斐波那契数,而5 * 5 * 5-4 = 121是一个完美的平方。
for (int i = min; i <= max; i++) {
if (isPerfectSquare(5*i*i + 4) || isPerfectSquare(5*i*i - 4)) {
// i is fibonacci number
}
}
在上述解决方案中,一旦获得了前两个斐波那契数,就可以跳过循环,并使用斐波那契公式获取其余的数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句