Pagini recente » Cod sursa (job #1664734) | Cod sursa (job #532285) | Cod sursa (job #1004606) | Cod sursa (job #130451) | Cod sursa (job #1839738)
#include <cstdio>
#include <vector>
#define BASE 100000000
using namespace std;
FILE *f=fopen("nunta.in","r");
FILE *g=fopen("nunta.out","w");
vector<int> V[4];
int N;
vector<int> add(vector<int> a,vector<int> b)
{
vector<int> c;
c.clear();
int n=max(a.size(),b.size()),t=0;
for(int i=0;i<n||t;i++)
{
c.push_back((i<a.size() ? a[i]:0)+(i<b.size() ? b[i]:0)+t);
t=c[i]/BASE;
}
return c;
}
void copiere(vector<int> &a,vector<int> &b)
{
vector<int> ::iterator it=b.begin();
a.assign(it,b.end());
}
int main()
{
fscanf(f,"%d",&N);
V[2].push_back(1);
V[3].push_back(2);
if(N<=2)
{
fprintf(g,"%d",(N==1 ? 1:2));
}
else
{
int i=3;
while(i<=N)
{
copiere(V[1],V[2]);
copiere(V[2],V[3]);
V[3]=add(V[1],V[2]);
i++;
}
int n=V[3].size();
for(int i=n-1;i>=0;i--)
{
int CB=BASE/10;
while(CB>V[3][i]&&i!=n-1)
{
CB/=10;
fprintf(g,"0");
}
fprintf(g,"%d",V[3][i]);
}
}
fclose(f);
fclose(g);
return 0;
}