从6开始就奇葩了
#include <bits/stdc++.h>
using namespace std;
string jia(string jia1,string jia2)
{
string str;
long long len1=jia1.length(),len2=jia2.length();
//小的前面补0
int n1[30000],n2[30000];
if(len1<len2){
for(int i=1;i<=len2-len1;i++){
jia1='0'+jia1;
}
}
else{
for(int i=1;i<=len1-len2;i++){
jia2='0'+jia2;
}
}
len1=jia1.length();
int last=0;
int temp;
//加法运算
for(int i=len1-1;i>=0;i--) {
temp=(jia1[i]-'0')+(jia2[i]-'0')+last;
last=temp/10;
temp%=10;
str+=char(temp+'0');
}
if(last!=0) str+=char(last+'0');
return str;
}
int main(){
int n;
string s[5000];
s[0]="0";
s[1]="1";
for(int i=2;i<=2000;i++){
s[i]=jia(s[i-2],s[i-1]);
}
while(cin>>n){
cout<<s[n+1]<<endl;
}
return 0;
}
输入:1~5全部正常,6是31,7就成了93了?????