Pagini recente » Cod sursa (job #349537) | Cod sursa (job #2918316) | Cod sursa (job #1335415) | Cod sursa (job #2516451) | Cod sursa (job #1790557)
#include <cstdio>
#define MAXN 210
int N;
FILE *f;
unsigned char F1[MAXN] = {1, 1}, F2[MAXN] = {1, 2};
unsigned char *M1 = &F1[0], *M2 = &F2[0], *AX;
void add(unsigned char A[], unsigned char B[])
{
//Se calculeaza A=A+B stiind ca B>=A
int i, t = 0;
for(i = 1; i <= B[0] || t; i++, t /= 10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
int main()
{
f = fopen("nunta.in", "r");
fscanf(f, "%d", &N);
fclose(f);
if(N <= 2)
M2[1] = N;
else
for(int i = 3; i <= N; i++)
{
add(M1, M2);
AX = M1;
M1 = M2;
M2 = AX;
}
f = fopen("nunta.out", "w");
for(int i = M2[0]; i >= 1; i--)
fputc(M2[i] + '0', f);
fclose(f);
return 0;
}