Java 斐波那契数列检查(检查用户输入的数字是否为斐波那契数)

Java 斐波那契数列检查(检查用户输入的数字是否为斐波那契数),java,fibonacci,Java,Fibonacci,如何让用户使用扫描器输入任何数字,然后显示他们输入的数字是否为斐波那契数 int[] ar = new int[200]; System.out.print(0+" "+1+" "); for (int i = 2; i < 110; i++) { ar[0] = 0; ar[1] = 1; ar[i] = ar[i-2] + ar[i-1]; System.out.print(ar[i]+" "); } //The code above prints ou

如何让用户使用扫描器输入任何数字,然后显示他们输入的数字是否为斐波那契数

int[] ar = new int[200];
System.out.print(0+" "+1+" ");
for (int i = 2; i < 110; i++) {
    ar[0] = 0;
    ar[1] = 1;
    ar[i] = ar[i-2] + ar[i-1];
    System.out.print(ar[i]+" ");
}
//The code above prints out some fibonacci numbers

System.out.println(Type in a number: );
int x = scan.nextInt();
int[]ar=newint[200];
系统输出打印(0+“”+1+“”);
对于(int i=2;i<110;i++){
ar[0]=0;
ar[1]=1;
ar[i]=ar[i-2]+ar[i-1];
系统输出打印(ar[i]+“”);
}
//上面的代码打印出一些斐波那契数
System.out.println(输入一个数字:);
int x=scan.nextInt();

看看下面的代码片段。用用户的输入替换生成值的

public static void main(String[] args) {
    for(int i = 1; i < 100; i ++) {
        System.out.println("Is " + i + " fibonacci: " + isFibonacci(i));
    }
}

public static boolean isFibonacci(int x) {
    return isPerfectSquare(5*x*x + 4) || isPerfectSquare(5*x*x - 4);
}

public static boolean isPerfectSquare(double x) {
    double squareRoot = Math.sqrt(x);
    return ((squareRoot - Math.floor(squareRoot)) == 0);
}
publicstaticvoidmain(字符串[]args){
对于(int i=1;i<100;i++){
System.out.println(“Is”+i+“fibonacci:+isFibonacci(i));
}
}
公共静态布尔值isFibonacci(int x){
返回isPerfectSquare(5*x*x+4)| | isPerfectSquare(5*x*x-4);
}
公共静态布尔值isPerfectSquare(双x){
双平方根=数学sqrt(x);
返回((平方根-数学下限(平方根))==0);
}

对于其背后的数学:

您想从用户处获取完整的i/p,然后检查,或者在获取i/p时,您想检查斐波那契?您可以将斐波那契数保存在
集合中,当用户提供输入时,查看它是否在您的集合中除了显示序列中的一些数字外,可能与您迄今为止所做的工作重复?在哪一步你有困难?Ekrem,如果用户输入了一个不在列表中的数字,我不会告诉他们“你的数字不是斐波那契数”。非常感谢。这纯粹是天才,我从来没有想过。