#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n];
a[0]=a[1]=1;
int sum=0,i;
if(n==1) sum=1;
else if(n==2) sum=2;
else{ for(i=2;i<n;i++){
a[i]=a[i-1]+a[i-2];
sum=a[i]+2;
}
}
cout << sum<< endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n];
a[0] = a[1] = 1;
int sum = 0, i;
if(n == 1)
sum = 1;
else if(n == 2)
sum = 2;
else{
sum = 2;//这个很重要
for(i = 2; i < n; i++){
a[i] = a[i-1] + a[i-2];
sum += a[i];
}
}
cout << sum<< endl;
return 0;
}
你期待什么输出, 看到了什么输出? 请写清楚
对了就点个采纳吧,可怜可怜孩子吧
错在:n>2时,sum初始=2,sum=a[i]+2; 改成:sum +=a[i];
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int *a=new int[n];
a[0]=a[1]=1;
int sum=0,i;
if(n==1)
{
sum=1;
}
else if(n==2)
{
sum=2;
}
else
{
sum=2;
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];
sum +=a[i];
}
}
cout << sum<< endl;
delete[] a;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,n,sum=0;
cin>>n;
int a[n];
a[0]=a[1]=1;
for(i=2;i<n;i++){
a[i]=a[i-1]+a[i-2];
// sum=sum+a[i];在此计算不对,不会得到结果。该步其实是初始化
}
for(i=0;i<n;i++)
sum=sum+a[i];
}
cout<<sum;
return 0;
}