利用JAVA数组循环编程,显示下面数据的前n项,已知前两项的值都是1,后
答案:4 悬赏:20 手机版
解决时间 2021-01-13 07:54
- 提问者网友:遁入空寂
- 2021-01-12 09:57
利用JAVA数组循环编程,显示下面数据的前n项,已知前两项的值都是1,后
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-01-12 10:12
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所能存储的最大范围导致的。你自己留意一下就好了。
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
}
for(int i=0;i
}
}
}代码如上,这里需要说明一下,n大概在50左右的时候就会发现数字已经变成负数了,这个问题不是程序的问题,而是超过了int所能存储的最大范围导致的。你自己留意一下就好了。
全部回答
- 1楼网友:罪歌
- 2021-01-12 13:06
- 2楼网友:未来江山和你
- 2021-01-12 12:01
这个要判断的如果n=2,就是1,1 如果n>2, n等于几,那么你可以创建一个数组,这个数组的长度就是n,然后你循环数组加起来就行了
- 3楼网友:玩家
- 2021-01-12 11:06
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;
}
}
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;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯