(高精度运算4.7.31)POJ 2413 How many Fibs?(大数累加)
2013-11-15 13:04
561 查看
package com.njupt.acm; import java.math.BigInteger; import java.util.Scanner; public class POJ_2413 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); BigInteger[] fibs = new BigInteger[501]; fibs[1] = new BigInteger("1"); fibs[2] = new BigInteger("2"); int i; for(i = 3 ; i < 501 ; ++i){//李先计算斐波那契数列 fibs[i] = fibs[i-1].add(fibs[i-2]); } BigInteger zero = new BigInteger("0"); while(true){ BigInteger a = scanner.nextBigInteger(); BigInteger b = scanner.nextBigInteger(); if(a.compareTo(zero) == 0 && b.compareTo(zero) == 0){ break; } int left = 0; int right = 0; boolean flag1 = true; /** * 求一个区间有多少个斐波那契数,这时扫的不是区间,而是斐波那契数组 */ for(i = 1 ; i < 501 ; ++i){//fib[500]就已经达到了10^100了 if(flag1 && (fibs[i].compareTo(a) == 1 || fibs[i].compareTo(a) == 0)){ left = i; flag1 = false; } if( fibs[i].compareTo(b) == 1 ){//需要注意对右边界的处理 right = i; break; } if( fibs[i].compareTo(b) == 0){ right = i+1; break; } } System.out.println(right - left ); } } }
相关文章推荐
- poj 2413 How many Fibs? 大数累加模板+字符串模拟大数比较大小
- POJ 2413 How many Fibs?#二分+大数加法
- POJ 2413 : How many Fibs? - JAVA大数! / 二分查找+大数加法
- How many Fibs?(poj 2413)大数斐波那契
- POJ2413 How many Fibs?【高精度】【二分】
- POJ 2413 How many Fibs?(高精度)
- POJ 2413 How many Fibs?(高精度暴力)
- zoj 1962 || poj 2413 How many Fibs?(大数~)
- UVa 10183/EOJ 1297/POJ 2413/HDU 1316/ZOJ 1962 How many Fibs?【Java大整数类应用】
- 二分查找+大整数加法——Poj 2413 How many Fibs?
- pku 2413 How many Fibs? 【java高精度】
- POJ 2413 How many Fibs?
- zoj 1962 || poj 2413 How many Fibs?
- poj 2413 How many Fibs?
- POJ 2413 How many Fibs? 笔记
- poj 2413 How many Fibs?
- hdu 1316 poj 2413 how many Fibs
- Java 大数之大数高精度斐波那契 UVA_10579&&HDU1316 How many Fibs?
- poj 2413 java How many Fibs?
- (高精度运算4.7.23)POJ 1503 Integer Inquiry(大数累加)