Pagini recente » Cod sursa (job #2510771) | Cod sursa (job #2155002) | Cod sursa (job #2306831) | Cod sursa (job #953202) | Cod sursa (job #1790483)
#include <cstdio>
unsigned char f1[212] = {1, 1}, f2[212] = {1, 2};
void adun(unsigned char f1[], unsigned char f2[])
{
int t = 0;
for(int i = 1; i <= f2[0] ; i++)
{
t += f1[i] + f2[i];
f1[i] = t % 10;
t /= 10;
}
f1[0] = f2[0];
while(t > 0)
{
f1[++f1[0]] = t % 10;
t /= 10;
}
}
void afisare(unsigned char a[])
{
freopen("nunta.out", "w",stdout);
for(int i = a[0]; i > 0; i--)
fputc(a[i]+'0', stdout);
fclose(stdout);
}
void fib(int N)
{
unsigned char *p1 = &f1[0], *p2 = &f2[0], *px;
if(N == 1)p2 = p1;
for(int i = 3; i <= N; i++)
{
adun(p1, p2);
px = p1;
p1 = p2;
p2 = px;
}
afisare(p2);
}
int main()
{
int N;
freopen("nunta.in", "r",stdin);
scanf("%d", &N);
fclose(stdin);
fib(N);
return 0;
}