Pagini recente » Profil marcandreicostin | Cod sursa (job #3154918) | Cod sursa (job #2749166) | Cod sursa (job #2848762) | Cod sursa (job #3185071)
#include <fstream>
using namespace std;
int N, crt[300], prec[300], copie[300];
ifstream f("nunta.in");
ofstream g("nunta.out");
void copiere(int A[], int B[])
{
for (int i = 0; i <= B[0]; i++)
A[i] = B[i];
}
void adunare(int A[], int B[])
{
int i, t = 0;
for (i = 1 ; i <= A[0] || i <= B[0] || t ; i++)
{
t += A[i] + B[i];
A[i] = t % 10;
t /= 10;
}
A[0] = i - 1;
}
void afisare(int A[])
{
for (int i = A[0]; i >= 1; i--)
g << A[i];
}
int main()
{
f >> N;
if(N == 1)
g << '1';
else
{
prec[0] = prec[1] = crt[0] = crt[1] = 1;
for (int i = 2; i <= N; i++)
{
copiere(copie, crt);
adunare(crt, prec);
copiere(prec, copie);
}
afisare(crt);
}
f.close();
g.close();
return 0;
}