Pagini recente » Cod sursa (job #709535) | Cod sursa (job #2570766) | Cod sursa (job #1864997) | Cod sursa (job #224035) | Cod sursa (job #934861)
Cod sursa(job #934861)
#include <iostream>
#include <cstdio>
using namespace std;
typedef short int BigNumber[300];
BigNumber A, B, C;
int N;
void copiaza( BigNumber a, BigNumber b ){
a[0] = b[0];
for ( int i = 1; i <= b[0]; i++ )
a[i] = b[i];
}
void init( BigNumber a ){
a[0] = a[1] = 1;
}
void reinit( BigNumber a ){
for(int i = 0; i < 500; i++)
a[i] = 0;
}
void aduna( BigNumber a, BigNumber b ){
a[0] = max ( a[0], b[0] );
int T = 0;
for ( int i = 1; i <= a[0]; i++ )
a[i] += b[i] + T,
T = a[i] / 10,
a[i] %= 10;
if ( T )
a[ ++a[0] ] = T;
}
void afis( BigNumber a ){
freopen("nunta.out", "w", stdout);
for(int i = a[0]; i; i--)
printf("%d", a[i]);
}
void rezolva(){
init(A);
init(B);
if ( N == 1 || N == 2 ){
afis(A);
return;
}
for(int i = 3; i <= N; i++){
reinit(C);
aduna(C, A);
aduna(C, B);
copiaza(A, B);
copiaza(B, C);
}
afis(C);
}
int main(){
freopen("nunta.in", "r", stdin);
scanf("%d", &N);
rezolva();
return 0;
}