Pagini recente » Cod sursa (job #2221706) | Cod sursa (job #1998851) | Cod sursa (job #1015260) | Cod sursa (job #1569723) | Cod sursa (job #1787444)
#include <cstdio>
using namespace std;
const int MAXN = 220;
int N;
unsigned char *M1, *M2, *M3, *AX;
void afisare(unsigned char A[])
{
FILE *g;
g = fopen("nunta.out", "w");
for(int i = A[0]; i >= 1; i--)
fprintf(g, "%d ", A[i]);
fclose(g);
}
void add(unsigned char A[], unsigned char B[], unsigned char C[])
{
int i, t = 0;
for(i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10)
C[i] = (t += A[i] + B[i]) % 10;
C[0] = i - 1;
}
int main()
{
FILE *f;
f = fopen("nunta.in", "r");
fscanf(f, "%d", &N);
fclose(f);
M1 = new unsigned char[MAXN];
M2 = new unsigned char[MAXN];
M3 = new unsigned char[MAXN];
M1[0] = M2[0] = M3[0] = 1;
for(int i = 1; i < MAXN; i++)
M1[i] = M2[i] = M3[i] = 0;
if(N == 0 || N == 1)
M2[1] = N;
else
{
M1[1] = 1, M2[1] = 2;
for(int i = 3; i <= N; i++)
{
add(M1, M2, M3);
AX = M1;
M1 = M2;
M2 = M3;
M3 = AX;
}
}
afisare(M2);
return 0;
}