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<n;i++){
arr[i] = arr[i-1] + arr[i-2];//当前的每个数都是他前面的两个数字之和
}
for(int i=0;i<n;i++){
System.out.print(arr[i]+" ");
}
}
}
代码如上,这里需要说明一下,n大概在50左右的时候就会发现数字已经变成负数了,这个问题不是程序的问题,而是超过了int所能存储的最大范围导致的。你自己留意一下就好了。