Pagini recente » Cod sursa (job #920078) | Cod sursa (job #2113378) | Cod sursa (job #3158070) | Cod sursa (job #647504) | Cod sursa (job #190497)
Cod sursa(job #190497)
#include <stdio.h>
#define input "nunta.in"
#define output "nunta.out"
#define nmax 1000
int n,s1[nmax],s2[nmax],s3[nmax];
void citire()
{
freopen(input,"r",stdin);
scanf("%d",&n);
}
void add(int d[], int s[])
{
int i,t=0;
if (s[0]>d[0]) d[0]=s[0];
for (i=1;i<=d[0];i++)
{
d[i]+=t+s[i];
t=d[i]/10;
d[i]%=10;
}
while (t)
{
d[0]++;
d[d[0]]=t%10;
t/=10;
}
}
void fill(int d[],int v,int n)
{
int i;
for (i=0;i<=n;i++) d[i]=v;
}
void copy(int d[],int s[])
{
int i;
for (i=1;i<=d[0];i++) d[0]=0;
for (i=0;i<=s[0];i++) d[i]=s[i];
}
void solve()
{
int i;
s1[1]=1;
s1[0]=1;
s2[1]=2;
s2[0]=1;
copy(s3,s1);
for (i=3;i<=n;i++)
{
fill(s3,0,n);
add(s3,s1);
add(s3,s2);
copy(s1,s2);
copy(s2,s3);
}
}
void afisare()
{
int i;
freopen(output,"w",stdout);
for (i=s3[0];i;i--)
printf("%d",s3[i]);
}
int main()
{
citire();
solve();
afisare();
return 0;
}