hdoj 1316 How Many Fibs? 【Java大数】+【打表】

来源:互联网 发布:sql数据库获取当前时间 编辑:程序博客网 时间:2024/05/23 01:57

现将前1000个的斐波那契数打表,然后再找就好了。

代码:



import java.util.Scanner;import java.math.*;public class Main{            public static void main(String[] args){        Scanner cin = new Scanner(System.in);        BigInteger[] s = new BigInteger[1005];        s[1] = new BigInteger("1");        s[2] = new BigInteger("2");        int i = 3;        while(i < 1000){            s[i] = s[i-1].add(s[i-2]);            //System.out.println(s[i]);            i++;        }        BigInteger a, b, temp;        temp = new BigInteger("0");        while(cin.hasNextBigInteger()){            a = cin.nextBigInteger();            b = cin.nextBigInteger();            if(a.compareTo(temp)== 0&&b.compareTo(temp)== 0) break;            int ans = 0;            i= 1;            while((s[i].compareTo(a)) < 0){                i++;//System.out.println(i);            }                        for(; s[i].compareTo(b) <= 0; i ++){                //System.out.println(i);                ++ans;            }            System.out.println(ans);            //a = cin.nextBigInteger();            //b = cin.nextBigInteger();        }    }}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316

1 0
原创粉丝点击