为何不对
2025-08-23 16:57:05
发布于:浙江
14阅读
0回复
0点赞
#include <iostream>
using namespace std;
int climbStairs(int n) {
int a = 1, b = 1, c;
for (int i =2; i <=n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int N;
cin >> N;
cout << climbStairs(N);
return 0;
}
全部评论 2
显然,在极限数据下,会爆 int
1周前 来自 浙江
0你好同学,这道题我们可以看一下数据范围,当N>=46时,int是否会溢出,显然会,所以用long long
#include <iostream> using namespace std; long long climbStairs(int n) { long long a = 1, b = 1, c; for (int i =2; i <=n; i++) { c = a + b; a = b; b = c; } return b; } int main() { int N; cin >> N; cout << climbStairs(N); return 0; }
当然,此题可以不用函数
#include <iostream> using namespace std; int main() { int N; cin >> N; long long a = 1, b = 1, c; for (int i =2; i <=N; i++) { c = a + b; a = b; b = c; } cout<<b; return 0; } 希望看见了对你有帮助
1周前 来自 上海
0dog dog
1周前 来自 上海
0
有帮助,赞一个