您的位置:首页 > 其它

25 1000-digit Fibonacci number - Project Euler

2015-11-01 22:55 399 查看
package xxx.xxx.xxx;

import java.math.BigInteger;

/*

 * The Fibonacci sequence is defined by the recurrence relation:

 * Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.

 * Hence the first 12 terms will be:

 * F1 = 1

 * F2 = 1

 * F3 = 2

 * F4 = 3

 * F5 = 5

 * F6 = 8

 * F7 = 13

 * F8 = 21

 * F9 = 34

 * F10 = 55

 * F11 = 89

 * F12 = 144

 * The 12th term, F12, is the first term to contain three digits.

 * What is the index of the first term in the Fibonacci sequence to contain 1000 digits?

 */

public class OneThousandDigitFibonacciNumber {

private void compute(){
BigInteger last = BigInteger.ONE;
BigInteger current = BigInteger.ONE;
BigInteger next = BigInteger.ZERO;
BigInteger count = BigInteger.valueOf(2);
while(next.toString().length()<1000){
count = count.add(BigInteger.valueOf(1));
next = last.add(current);
last = current;
current = next;
}
System.out.println(count);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
OneThousandDigitFibonacciNumber test = new OneThousandDigitFibonacciNumber();
test.compute();
long endTime = System.currentTimeMillis();
System.out.println("execution time "+(endTime-startTime +"ms"));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法