永发信息网

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

答案:4  悬赏:20  手机版
解决时间 2021-01-13 07:54
利用JAVA数组循环编程,显示下面数据的前n项,已知前两项的值都是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所能存储的最大范围导致的。你自己留意一下就好了。
全部回答

这个要判断的如果n=2,就是1,1 如果n>2, n等于几,那么你可以创建一个数组,这个数组的长度就是n,然后你循环数组加起来就行了
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;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
某校“地理社团”进行了网上模拟探究活动,如
鸽子出仔了,大鸽子老找土吃是缺什么?
身上长红痣对身体有危害吗?
求贾岛五言诗
为什么nba森林狼这么菜?
w公司系p公司母公司的全资子公司谁是谁的母公
欣盛便利店这个地址在什么地方,我要处理点事
鬼上身老是哭送也送不走怎么办
jquery 输出html代码改变DIV的内容,HTML含有
拍证件照 怎么避免双下巴
- _ __. -I want a white hat.A. How much is
48和40的最大公因数是多少
面积是42.2平方米求长和宽两个6米几的数是多
打算安装别墅座椅电梯,问下是否安全?
双桥区承德鑫淼磊骨头馆我想知道这个在什么地
推荐资讯
已知|2x-3|≤1的解集为[m,n].(1)求m+n的
42crm0的材质调质硬度是HRC28一3二请问是多少
西江月园林艺术主题餐厅绳金塔店地址在哪,我
深圳实验学校是公立还是私立的
7.09/0.52的得数保留一位小数
微看圣经注解怎么打不开
济南汇鑫国际大厦在哪
11分之6x15分之7x10
邮储银行互惠贷什么是
公路隧道施工中喷射混凝土每段长度不应超过6
不安的心眼看窗外好想家的诗词
想要免费的云空间,哪里有?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?