7 条题解
-
1
我似乎忘了个细节,导致了WA,那个细节就是:
要开long long
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; while (cin >> n) { if (n == 0) break; long long a[1005]; a[1] = 1; a[2] = 2; a[3] = 4; for (int i = 4; i <= n; i++) a[i] = a[i - 1] + a[i - 2] + a[i - 3]; cout << a[n] << endl; } return 0; }
-
0
题目描述
楼梯有n(71>n>0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。
思路
递推出公式 f[i]=f[i-1]+f[i-2]+f[i-3]
#include <iostream> using namespace std; int main() { int x; long long f[110]; f[1]=1; f[2]=2; f[3]=4; for(int i=4;i<72;i++) { f[i]=f[i-1]+f[i-2]+f[i-3]; } while(cin>>x&&x) { cout<<f[x]<<endl; } return 0; }
- 1
信息
- ID
- 562
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 2176
- 已通过
- 442
- 上传者