作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了斐波那契数列方法;
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++;
这个循环在main方法中。我需要用一种方法来完成此操作,我的意思是这两个函数将在同一个方法中。
最佳答案
数字 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
}
}
在上面的解决方案中,一旦获得了前两个斐波那契数,就可以跳过循环,并使用斐波那契公式来获得其余的数。
关于java - 如何打印两个整数之间的斐波那契数列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29588894/
我是一名优秀的程序员,十分优秀!