---
id: 5900f3851000cf542c50fe98
title: 问题25:1000位斐波纳契数
challengeType: 5
videoUrl: ''
dashedName: problem-25-1000-digit-fibonacci-number
---
# --description--
Fibonacci序列由递归关系定义:
F
n
= F
n-1
- F
n-2
,其中F
1
= 1且F
2
= 1。
因此,前12个学期将是:
F
1
= 1
F
2
= 1
F
3
= 2
F
4
= 3
F
5
= 5
F
6
= 8
F
7
= 13
F
8
= 21
F
9
= 34
F
10
= 55
F
11
= 89
F
12
= 144
第12个学期F
12
是第一个包含三位数的术语。 Fibonacci序列中包含`n个`数字的第一项的索引是多少?
# --hints--
`digitFibonacci(5)`应该返回21。
```js
assert.strictEqual(digitFibonacci(5), 21);
```
`digitFibonacci(10)`应该返回45。
```js
assert.strictEqual(digitFibonacci(10), 45);
```
`digitFibonacci(15)`应该返回69。
```js
assert.strictEqual(digitFibonacci(15), 69);
```
`digitFibonacci(20)`应该返回93。
```js
assert.strictEqual(digitFibonacci(20), 93);
```
# --seed--
## --seed-contents--
```js
function digitFibonacci(n) {
return n;
}
digitFibonacci(20);
```
# --solutions--
```js
const digitFibonacci = (n) => {
const digits = (num) => {
return num.toString().length;
};
let f1 = 1;
let f2 = 1;
let index = 3;
while (true) {
let fn = f1 + f2;
if (digits(fn) === n) return index;
[f1, f2] = [f2, fn];
index++;
}
};
```