using namespace std;
long long n,a[35];
int main(){
a[1]=1,a[2]=2;
for(int i=3; i<=35; i++)
a[i]=a[i-1]+a[i-2];
cin>>n;
while(n!=0){
cout<
cin>>n;
}
return 0;
}
改一下试试
while (cin >> n)
{
cout << a[n] << '\n';
}
题目是啥?
a数组越界了啊,当i=35的时候,a[35]是越界的啊
#include <bits/stdc++.h>
using namespace std;
int n;
long long aa(int n)//递归
{
if(n==0||n==1)
{
return 1;//n为1或0时只有一种方法
}
else
{
return aa(n-1)+aa(n-2);//继续递归
}
}
int main()
{
while(scanf("%d",&n))//如果有输入就输出
{
cout<<aa(n)<<endl;
}
return 0;
}