64,682
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
int Fibo(int N)
{
int i;
int str[50];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
return str[N - 1];
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
#include<iostream>
using namespace std;
int Fibo(int N)
{
int i;
unsigned long long str[50];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
return str[N - 1];
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
可是还是负的。。[/quote]
函数的返回值还是int
函数中的str应该用动态申请,你这样就定死了不能超过50
#include<iostream>
using namespace std;
unsigned long long Fibo(int N)
{
int i;
unsigned long long* str = new unsigned long long[N];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
unsigned long long ret = str[N - 1];
delete[] str;
return ret;
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
[/quote]
非常感谢。。我是刚刚学习C++,请问前辈这个delete[] str有什么用?#include<iostream>
using namespace std;
int Fibo(int N)
{
int i;
unsigned long long str[50];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
return str[N - 1];
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
可是还是负的。。[/quote]
函数的返回值还是int
函数中的str应该用动态申请,你这样就定死了不能超过50
#include<iostream>
using namespace std;
unsigned long long Fibo(int N)
{
int i;
unsigned long long* str = new unsigned long long[N];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
unsigned long long ret = str[N - 1];
delete[] str;
return ret;
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
#include<iostream>
using namespace std;
int Fibo(int N)
{
int i;
unsigned long long str[50];
str[0] = 1;
str[1] = 1;
for(i = 2; i < N; i++)
{
str[i] = str[i - 1] + str [i - 2];
}
return str[N - 1];
}
int main()
{
int N;
cin>>N;
cout<<Fibo(N)<<endl;
return 0;
}
可是还是负的。。