还是手搓结构体舒服
2025-01-02 21:56:29
发布于:广东
30阅读
0回复
0点赞
#include <iostream>
#include <cstdio>
#include <memory.h>
using namespace std;
struct node{
int num[2005];
int len = 1;
friend ostream &operator << (ostream &cout, node &a){
for(int i = a.len; i >= 1; i--) cout << a.num[i];
return cout;
}
void operator += (node &b){
len = max(len, b.len);
for(int i = 1; i <= len; i++){
num[i] += b.num[i];
if(num[i] >= 10){
num[i + 1]++;
num[i] -= 10;
}
}
if(num[len + 1]) len++;
}
void init_1(){
num[1] = 1;
}
}dp[5005];
int main(){
cin.tie(nullptr) -> sync_with_stdio(0);
cout.tie(nullptr) -> sync_with_stdio(0);
int n;
cin >> n;
dp[1].init_1();
for(int i = 2; i <= n + 1; i++){
dp[i] += dp[i - 1];
dp[i] += dp[i - 2];
}
cout << dp[n + 1];
return 0;
}
这里空空如也
有帮助,赞一个