首页 > 代码库 > HDU 1316 How Many Fibs?(java,简单题,大数)
HDU 1316 How Many Fibs?(java,简单题,大数)
题目
/**
* compareTo:根据该数值是小于、等于、或大于 val 返回 -1、0 或 1;
public int compareTo(BigInteger val)
将此 BigInteger 与指定的 BigInteger 进行比较。
对于针对六个布尔比较运算符 (<, ==, >, >=, !=, <=)
中的每一个运算符的各个方法,优先提供此方法。
执行这些比较的建议语句是:(x.compareTo(y) <op> 0),
其中 <op> 是六个比较运算符之一。
*/
/**
* and:等同于c++的&&,且;
*/
import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public int an(BigInteger a, BigInteger b, BigInteger sa, BigInteger sb) { int ans = 0; if(a.compareTo(sa) >= 0 && a.compareTo(sb) <= 0) { ans++; } if(b.compareTo(sa) >= 0 && b.compareTo(sb) <= 0) { ans++; } for(;;) { BigInteger c = a.add(b); a = b; b = c; if(b.compareTo(sa) >= 0 && b.compareTo(sb) <= 0) { ans++; } if(b.compareTo(sb) > 0) { return ans; } } } public static void main(String[] args) throws Exception { // 定义并打开输入文件 Scanner cin = new Scanner(System.in); Main e = new Main(); BigInteger a = BigInteger.valueOf(1); BigInteger b = BigInteger.valueOf(2); BigInteger sa; BigInteger sb; BigInteger zero = BigInteger.ZERO; while(cin.hasNext()) { sa = cin.nextBigInteger(); sb = cin.nextBigInteger(); if(sa.compareTo(zero) == 0 && sb.compareTo(zero) == 0) { break; } System.out.println(e.an(a, b, sa, sb)); } cin.close(); //关闭输入文件 } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。