Pagini recente » Cod sursa (job #2484874) | Cod sursa (job #3198064) | Cod sursa (job #1485) | Cod sursa (job #395748) | Cod sursa (job #120564)
Cod sursa(job #120564)
#include <stdio.h>
#include <string.h>
const long SIZE = 1000;
long n, i, ant[SIZE], ant2[SIZE], curent[SIZE];
void copy(long a[], long b[])
{
memset(a, 0, sizeof(a));
for (long i = 0; i <= b[0]; i ++)
a[i] = b[i];
}
void add(long A[], long 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()
{
freopen ("nunta.in", "rt", stdin);
freopen ("nunta.out", "wt", stdout);
scanf("%ld", &n);
if (n == 2 && n == 1)
{
printf("1\n");
return 0;
}
ant2[0] = ant2[1] = ant[0] = ant[1] = 1;
for (i = 2; i <= n; i ++)
{
memset(curent, 0, sizeof(curent));
add(curent, ant2);
add(curent, ant);
copy(ant2, ant);
copy(ant, curent);
}
for (i = curent[0]; i >= 1; i --)
printf("%ld", curent[i]);
printf("\n");
return 0;
}