刚才写的这道题的程序,用vector写的,写完以后发现样例都不过(输入4输出个2),问老师,老师也没找到哪里出问题了。求教求教,到底是哪里出问题了?
#include<bits/stdc++.h>
using namespace std;
vector<int> add(vector<int> &A,vector<int> &B)
{
vector<int> C;
int carry=0;
for(int i=0;i<A.size()||i<B.size();i++)
{
if(i<A.size())carry+=A[i];
if(i<B.size())carry+=B[i];
C.push_back(carry%10);
carry=carry/10;
}
if(carry)C.push_back(carry);
return C;
}
int main()
{
int n;
cin>>n;
if(n==1||n==2){
cout<<n;
return 0;
}
vector<int> f1,f2,sum;
f1.push_back(1);
f2.push_back(2);
for(int i=3;i<=n;i++)
{
vector<int> C;
C=add(f1,f2);
sum.swap(C);
f1.swap(f2);
f2.swap(sum);
}
for(int i=sum.size()-1;i>=0;i--)
cout<<sum[i];
return 0;
}