Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
41646 | Songgy_King | 上台阶_记忆化递归 | C++ | 通过 | 0 MS | 252 KB | 441 | 2024-02-22 20:52:40 |
#include<bits/stdc++.h> using namespace std; int main(){ int k[105] = {1},n = 0; long long ans[105] = {0}; ans[1] = 1; ans[2] = 2; ans[3] = 4; while(1){ int l; cin>>l; if(!l){ break; } k[n] = l; n++; } for(int i = 0;i<n;i++){ if(ans[k[i]]){ cout<<ans[k[i]]<<endl; continue; } for(int j = 4;j<=k[i];j++){ ans[j] = ans[j-1]+ans[j-2]+ans[j-3]; } cout<<ans[k[i]]<<endl; } }