利用JAVA数组循环编程,显示下面数据的前n项,已知前两项的值都是1,后

2025-01-25 08:40:54
推荐回答(4个)
回答1:

public class TestRef {
public static void main(String[] args) {
System.out.print("输入n(n>0):");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] arr = new int[n+1];//这个地方多开辟了一个空间,否则当n==1时,执行arr[1]=1时会抛出数组越界的异常
if(n<1){
System.out.println("n输入不合理");
return;//直接退出,否则下面的arr[0]和arr[1]的赋值操作会数组越界
}
arr[0] = 1;
arr[1] = 1;
for(int i=2;i arr[i] = arr[i-1] + arr[i-2];//当前的每个数都是他前面的两个数字之和
}
for(int i=0;i System.out.print(arr[i]+" ");
}
}
}

代码如上,这里需要说明一下,n大概在50左右的时候就会发现数字已经变成负数了,这个问题不是程序的问题,而是超过了int所能存储的最大范围导致的。你自己留意一下就好了。

回答2:

public class jdemo {

    static final int MAXSIZE_OF_ARRAY = 100; // 假定最多100项,具体根据实际情况修改此处

    public static void main(String args[]){
       System.out.println(Fibonacci(4));
    } 

    public static int Fibonacci(int findIndex){ // Zero-Base

Integer[] fib=new Integer[MAXSIZE_OF_ARRAY];
fib[0]=fib[1]=1;

for(int i=2;i<=MAXSIZE_OF_ARRAY-1;i++){
fib[i]=fib[i-1]+fib[i-2];
if(findIndex==i) return fib[i];
}

return -1;
}
}

回答3:

这个要判断的如果n=2,就是1,1 如果n>2, n等于几,那么你可以创建一个数组,这个数组的长度就是n,然后你循环数组加起来就行了

回答4: