Pagini recente » Cod sursa (job #2342318) | Cod sursa (job #2517753) | Cod sursa (job #1255021) | Cod sursa (job #808386) | Cod sursa (job #1790475)
#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[])
{
FILE *g = fopen("nunta.out", "w");
for(int i = a[0]; i > 0; i--)
fprintf(g, "%d", a[i]);
fclose(g);
}
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;
FILE *f = fopen("nunta.in", "r");
fscanf(f, "%d", &N);
fclose(f);
fib(N);
return 0;
}