hdu1316 How Many Fibs?

题目链接: hdu1316 ( How Many Fibs? )

\(java\ AC\) 代码:

/**
 * hdu1316 How Many Fibs?
 *
 */

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            BigInteger a = in.nextBigInteger();
            BigInteger b = in.nextBigInteger();
            if (a.equals(b) && a.equals(BigInteger.ZERO)) break;
            BigInteger f1 = BigInteger.ZERO, f2 = BigInteger.ONE;
            int ans = 0;
            while (f2.compareTo(b) <= 0 && f1.compareTo(b) <= 0) {
                f1 = f1.add(f2); f2 = f2.add(f1);
                if (f1.compareTo(a) >= 0 && f1.compareTo(b) <= 0) ++ans;
                if (f2.compareTo(a) >= 0 && f2.compareTo(b) <= 0) ++ans;
            }
            System.out.println(ans);
        }
    }
}

posted @ 2021-01-28 16:25  Zewbie  阅读(53)  评论(0)    收藏  举报