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

现将前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

时间: 2024-10-27 06:15:25

hdoj 1316 How Many Fibs? 【Java大数】+【打表】的相关文章

HDU 1316 How Many Fibs? java大数(水

水一水.. import java.math.*; import java.util.*; import java.io.*; public class Main { BigInteger[] fib = new BigInteger[505]; public void work(){ fib[1] = BigInteger.ONE; fib[2] = BigInteger.valueOf(2); for(int i = 3; i <= 500; i++) fib[i] = fib[i-1].a

HDOJ 1316 How Many Fibs?

JAVA大数.... How Many Fibs? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3906    Accepted Submission(s): 1545 Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 :=

UVA10183 - How Many Fibs?(java大数+二分)

UVA10183 - How Many Fibs?(java大数+二分) 题目链接 题目大意:给你a,b,求[a,b]之间有多少个fibs数. 解题思路:虽然a.b很大,但是在10^100内的fibs却不超过500个.这样就可以先把这些fibs保存在数组中,然后每次二分去找a,b的位置,然后就可以得到之间有多少个fibs. 代码: import java.util.*; import java.math.*; import java.io.*; import java.lang.String.*

POJ 2413 How many Fibs? /HDOJ 1316 How Many Fibs?

题目来源:http://poj.org/problem?id=2413 / http://acm.hdu.edu.cn/showproblem.php?pid=1316 How many Fibs? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10742   Accepted: 3979 Description Recall the definition of the Fibonacci numbers: f1 :=

hdu--1316--How Many Fibs?(java大数)

How Many Fibs? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6371    Accepted Submission(s): 2517 Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-1

HDU 1316 How Many Fibs?(java,简单题,大数)

题目 /** * compareTo:根据该数值是小于.等于.或大于 val 返回 -1.0 或 1: public int compareTo(BigInteger val) 将此 BigInteger 与指定的 BigInteger 进行比较. 对于针对六个布尔比较运算符 (<, ==, >, >=, !=, <=)中的每一个运算符的各个方法,优先提供此方法. 执行这些比较的建议语句是:(x.compareTo(y) <op> 0), 其中 <op> 是

HDU高精度总结(java大数类)

  HDU1002   A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Input 2 1 2 112233445566778899 998877665544332211 Sample Output Case 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110 代码

hdu 1316 How many Fibs?(高精度斐波那契数)

//  大数继续 Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-1 + fn-2 (n >= 3) Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b]. Input The input contains several test cas

HDUJ 1316 How Many Fibs?

How Many Fibs? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4106    Accepted Submission(s): 1623 Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-