zoukankan      html  css  js  c++  java
  • Java学习之斐波那契数列实现

    描述

    一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000。

    输入

    输入数据的第一行为测试用例的个数t,接下来为t行,每行为一个整数n(0≤n≤1000)。

    输出

    输出每个测试用例的斐波那契数F(n)。

    样例输入

    2

    1

    2

    样例输出

    1

    1

    import java.math.BigInteger;
    import java.util.ArrayList;
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {    
            ArrayList<BigInteger> ar=new ArrayList<BigInteger>();
            BigInteger b1=new BigInteger("1");
            ar.add(b1);
            BigInteger b2=new BigInteger("1");
            ar.add(b2);
            Scanner sc=new Scanner(System.in);
            for(int i=2;i<1010;i++)
            {
                BigInteger a=ar.get(i-1);
                BigInteger b=ar.get(i-2);
                BigInteger c=a.add(b);
                ar.add(c);
            }
            int t=0;
            int n=sc.nextInt();
            while(true){
                if(t==n)
                    break;
                int m=sc.nextInt();
                if(m==0)
                    System.out.println(0);
                else 
                    System.out.println(ar.get(m-1));
                t++;
            }    
        }    
    }

    像这种数据非常大的,用C或C++解决真是非常麻烦,不过用Java就比较简单了,BigInteger可以存无限大的数,比较好处理,第一次交上去竟然RE了,不明白,测试了好几次,突然想到如果输入0时数组的下标就变成-1了,于是,输入0加入判断,就过了

     

  • 相关阅读:
    函数详解
    print()函数知识点总结
    python基本数据类型-字符串常用操作
    2020.7.17第十二天
    2020.7.16第十一天
    2020.7.15第十天
    2020.7.14第九天
    2020.7.13第八天
    2020.7.12第七天
    2020.7.11第六天
  • 原文地址:https://www.cnblogs.com/andrew3/p/10038924.html
Copyright © 2011-2022 走看看