水题。直接按定义递推即可,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;
}

https://www.nowcoder.com/discuss/727521113110073344