斐波那契数列是指这样的数列:数列的第一个和第二个都为1,接下来的每个数都等于前两个数之和。 也就是 f(n) = f(n-1) + f(n-2) 给出一 个正整数n,要求斐波那契数列中第n个数是多少。由于结果较大,仅需输出数列对1008610010取余的结果。 也就是 f(n) = (f(n-1) + f(n-2))%1008610010 数据规模 0 <= n <= 1000000
时间: 2023-12-15 12:03:13 浏览: 96
已知Fibonacci数列:1,1,2,3,5,8,13,……。观察数列,可发现这样的规则:从第3项开始,每一项都是其前面两项之和。
以下是求斐波那契数列第 n 项对 1008610010 取模的 C++ 代码(使用递推法):
```c++
#include <iostream>
using namespace std;
const int MOD = 1008610010;
int fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
int pre1 = 1, pre2 = 1, cur = 0;
for (int i = 2; i <= n; i++) {
cur = (pre1 + pre2) % MOD;
pre1 = pre2;
pre2 = cur;
}
return cur;
}
int main() {
int n;
cout << "请输入 n:";
cin >> n;
cout << "斐波那契数列第 " << n << " 项对 " << MOD << " 取模的结果为:" << fibonacci(n) << endl;
return 0;
}
```
其中,fibonacci 函数接受一个整数参数 n,返回斐波那契数列第 n 项对 1008610010 取模的值。在函数内部,我们使用了递推法来计算斐波那契数列的值,并在每次计算后对 MOD 取模。在主函数中,我们读入用户输入的 n,然后调用 fibonacci 函数计算并输出结果。
阅读全文