#include<iostream>
using namespace std;
long long num;
long long dp[90];
int solve(int a)
{
dp[0]=1;
dp[1]=1;
for(int i = 2; i<a; i++)
{
dp[i] = dp[i-1] + dp[i-2];
}
return dp[a-1];
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> num;
solve(num);
cout << dp[num-1];//problem.
return 0;
}
因为dp大小在int中是oversize,所以我使用long-long类型。
当我习惯于";cout<lt;solve(num(";,i输入值为47;结果,我得到了错误(-29928302(
当我使用上面的代码("cout<<dp[num-1]"(时,我得到了正常值。
两者有什么不同?
solve()
的返回类型是int
而不是long long
。