
列举前几项,易发现答案为斐波那契数列前m项求和
#include <iostream>
using namespace std;
int main() {
long long m, a = 1, b = 2, ans = 3;
const long long M = 998244353;
cin >> m;
if (m == 1) {
cout << 1;
return 0;
} else if (m == 2) {
cout << 3;
return 0;
}
while (m > 2) {
b = a + b;
a = b - a;
b %= M;//取模防止数据超限
ans += b;
ans %= M;
--m;
}
cout << ans;
}
b %=M;

该代码实现了一个计算斐波那契数列前m项和的程序,通过取模防止数据溢出,并使用了迭代方式更新数列项。程序首先处理m等于1和2的特殊情况,然后在循环中更新a和b的值,累加到答案ans中,最后输出结果。
364

被折叠的 条评论
为什么被折叠?



