代码来检查用户输入的数字是否在Fibonacci序列中.
我没有问题写Fibonacci序列输出,但(可能是因为它深夜)我正在努力想到“是否”它是斐波纳契数的序列.我一遍又一遍地开始.它确实在我的脑海里.
我现在拥有的是第n个.
public static void main(String[] args) { ConsoleReader console = new ConsoleReader(); System.out.println("Enter the value for your n: "); int num = (console.readInt()); System.out.println("/nThe largest nth fibonacci: "+fib(num)); System.out.println(); } static int fib(int n){ int f = 0; int g = 1; int largeNum = -1; for(int i = 0; i < n; i++) { if(i == (n-1)) largeNum = f; System.out.print(f + " "); f = f + g; g = f - g; } return largeNum; }
上标题为“识别斐波纳契数”的部分.
Alternatively, a positive integer z is a Fibonacci number if and only if one of 5z^2 + 4 or 5z^2 − 4 is a perfect square.[17]
或者,您可以继续生成斐波纳契数,直到一个等于您的数字:如果是,那么您的数字是斐波纳契数,如果不是,数字最终会变得比您的数字大,您可以停止.然而,这是非常低效的.
翻译自:https://stackoverflow.com/questions/3139645/determining-whether-a-number-is-a-fibonacci-number