水题。直接按定义递推即可,n 若很大,可以使用矩阵快速幂。
#include<bits/stdc++.h>
using i64 = long long;
int main() {
std::cin.tie(nullptr)->sync_with_stdio(false);
int n;
std::cin >> n;
std::vector<int> dp(41);
dp[1] = dp[2] = 1;
for (int i = 3; i <= 40; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
std::cout << dp[n];
return 0;
}

京公网安备 11010502036488号