第一个包含1000位数字的斐波那契数列项是第几项?

来源:互联网 发布:web服务器搭建软件 编辑:程序博客网 时间:2024/06/11 17:11

以下是斐波那契数列的递归定义:

Fn = Fn−1 + Fn−2, F1 = 1,F2 = 1.

那么其12项为:

F1 = 1
F2 = 1
F3 = 2
F4 = 3
F5 = 5
F6 = 8
F7 = 13
F8 = 21
F9 = 34
F10 = 55
F11 = 89
F12 = 144

因此第12项,F12,是第一个包含三位数字的项。

斐波那契数列中第一个包含1000位数字的项是第几项?

public class Test {public static void main(String[] args) {int[] fib = new int[1000];int[] answer = new int[1000];int[] temp = new int[1000];fib[0] = answer[0] = 1; // 存储第n项的结果(逆序)int num = 2; // 初始为2项while (true) {temp = answer.clone(); // 记录fib前一项for (int i = 0; i < 1000; i++) {answer[i] += fib[i];}fib = temp.clone();for (int i = 0; i < 1000 - 1; i++) {if (answer[i] >= 10) {answer[i + 1]++;answer[i] = answer[i] % 10;}}num++;if (answer[999] != 0) {break;}}System.out.println(num);}}