UVA_10579
import java.math.BigInteger;
import java.util.Scanner;
public class UVA_10579 {//fibs[20] = 6765 ,fibs的上限达到上千位
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigInteger[] fibs = new BigInteger[2000];
fibs[1] = new BigInteger("1");
fibs[2] = new BigInteger("1");
int i;
for(i = 3 ; i < 2000 ; ++i){
fibs[i] = fibs[i-1].add(fibs[i-2]);
}
while(cin.hasNext()){
int n = cin.nextInt();
System.out.println(fibs[n]);
}
}
}
HDU1316
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String []args)throws Exception{
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String a=in.next();
String b=in.next();
if(a.equals("0")&&b.equals("0"))
break;
BigInteger c = new BigInteger(a);
BigInteger d = new BigInteger(b);
int sum=fibo(c,d);
System.out.println(sum);
}
in.close();
}
public static int fibo(BigInteger a,BigInteger b){
int sum =0;
BigInteger f = new BigInteger("1");
BigInteger s = new BigInteger("2");
while(true){
if(f.compareTo(b)>0) //前一个数比后一个数大
break;
if(f.compareTo(a)>=0) //前一个数比后一个数大或相等
sum++;
BigInteger t = f;
f=s;
s=s.add(t);
}
return sum;
}
}
仅代表个人观点,欢迎交流探讨,勿喷~~~
PhotoBy:WLOP