Pagini recente » Cod sursa (job #1118962) | Cod sursa (job #1165623) | Cod sursa (job #2481359) | Cod sursa (job #14679) | Cod sursa (job #1910592)
#include<bits/stdc++.h>
using namespace std;
int n,v1[1005],v2[1005],v3[1005];
void conversie(int v[],int x)
{
int dv=0;
while(x)
{
v[++dv]=x%10;
x/=10;
}
v[0]=dv;
}
void adunare(int a[],int b[])
{
int t=0,i;
for(i=1;i<=a[0] || i<=b[0] || t;i++)
{
t=t+a[i]+b[i];
a[i]=t%10;
t/=10;
}
a[0]=i-1;
}
void inmultire(int a[],int b[])
{
int c[1005],j,t=0;
memset(c,0,sizeof(c));
for(int i=1;i<=a[0];i++)
{
for(j=1;j<=b[0] || t;j++)
{
t+=c[i+j-1]+a[i]*b[j];
c[i+j-1]%=10;
t/=10;
}
if((i+j-2)>c[0]) c[0]=i+j-2;
}
memcpy(a,c,sizeof(c));
}
int main()
{
freopen("nunta.in","r",stdin);
freopen("nunta.out","w",stdout);
scanf("%d",&n);
n++;
conversie(v1,1);
conversie(v2,1);
if(n==1 || n==2)
{
printf("1\n");
return 0;
}
for(int i=3;i<=n;i++)
{
memcpy(v3,v1,sizeof(v1));
adunare(v3,v2);
memcpy(v1,v2,sizeof(v2));
memcpy(v2,v3,sizeof(v3));
}
for(int i=v3[0];i>=1;i--) printf("%d",v3[i]);
return 0;
}