Pagini recente » Cod sursa (job #731060) | Cod sursa (job #2480937) | Cod sursa (job #238086) | Cod sursa (job #2263085) | Cod sursa (job #457929)
Cod sursa(job #457929)
#include <cstdio>
const char FIN[] = "nunta.in";
const char FOU[] = "nunta.out";
const int MAX = 220;
int A[MAX], B[MAX], F[MAX];
int N;
void add(int A[], int B[], int 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;
}
void atr(int A[], int X)
{
A[0] = 0;
while (X)
{
++A[0];
A[A[0]] = X % 10;
X /= 10;
}
}
void atrh(int A[], int B[])
{
for (int i = 0; i <= B[0]; ++i) A[i] = B[i];
}
void write(int A[])
{
for (int i = A[0]; i > 0; i--) printf("%d",A[i]);
printf("\n");
}
int main()
{
freopen(FIN, "r", stdin);
freopen(FOU, "w", stdout);
scanf("%d", &N);
atr(A, 1), atr(B, 1);
if ( N == 1 || N == 2 ) atrh(F, A);
else
for (int i = 3; i <= N + 1; ++i)
add(A, B, F), atrh(A, B), atrh(B, F);
write(F);
return 0;
}