Pagini recente » Cod sursa (job #215629) | Cod sursa (job #251349) | Cod sursa (job #1703411) | Cautari ortogonale | Cod sursa (job #1790563)
#include <fstream>
using namespace std;
const int MAXN = 210;
int N;
unsigned char F1[MAXN] = {1, 1}, F2[MAXN] = {1, 2};
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()
{
unsigned char *M1 = &F1[0], *M2 = &F2[0], *AX;
fstream f;
f.open("nunta.in", ios::in);
f >> N;
f.close();
if(N <= 2)
M2[1] = N;
else
for(int i = 3; i <= N; i++)
{
add(M1, M2);
AX = M1;
M1 = M2;
M2 = AX;
}
f.open("nunta.out", ios::out);
for(int i = M2[0]; i >= 1; i--)
f << char(M2[i] + 48);
f.close();
return 0;
}