Pagini recente » Cod sursa (job #1875648) | Cod sursa (job #867488) | Cod sursa (job #1462089) | Cod sursa (job #1483259) | Cod sursa (job #755235)
Cod sursa(job #755235)
#include<fstream>
using namespace std;
int n;
int fib[3][215];
void Copie(int A[],int B[])
{
int i;
for(i=1;i<=A[0];i++)
A[i]=0;
A[0]=B[0];
for(i=1;i<=B[0];i++)
A[i]=B[i];
}
void Adunare(int A[],int B[])
{
int i,t=0;
for(i=1;i<=A[0] || i<=B[0] || t;i++,t/=10)
A[i]=(t+=A[i]+B[i])%10;
A[0]=i-1;
}
int main()
{
int i;
ifstream fin("nunta.in");
fin>>n;
fin.close();
fib[0][0]=fib[0][1]=1;
fib[1][0]=1;
fib[1][1]=2;
for(i=3;i<=n;i++)
{
Copie(fib[2],fib[1]);
Adunare(fib[2],fib[0]);
Copie(fib[0],fib[1]);
Copie(fib[1],fib[2]);
}
ofstream fout("nunta.out");
if(n==1)
fout<<1<<"\n";
else
{
if(n==2)
fout<<2<<"\n";
else
{
for(i=fib[1][0];i>0;i--)
fout<<fib[1][i];
fout<<"\n";
}
}
fout.close();
return 0;
}