Pagini recente » Cod sursa (job #74703) | Cod sursa (job #2523500) | Cod sursa (job #1667989) | Cod sursa (job #2249441) | Cod sursa (job #2308724)
#include <iostream>
#include <fstream>
#define NUM 500
int a[NUM];
int b[NUM];
int c[NUM];
int n;
using namespace std;
void adunare(int * c, int * a, int * b)
{
int t = 0;
c[0] = a[0] > b[0] ? a[0] : b[0];
for(int i = 1; i <= c[0]; ++i)
{
t += a[i] + b[i];
c[i] = t % 10;
t /= 10;
}
if(t > 0)
c[++c[0]] = t;
}
void atribuire(int * a, int * b)
{
a[0] = b[0];
for(int i = 0; i <= b[0]; ++i)
a[i] = b[i];
}
int main()
{
ifstream f("nunta.in");
ofstream g("nunta.out");
f >> n;
n--;
if(n <= 1)
{
g << (!n ? 1 : 2);
}
else
{
a[0] = b[0] = 1;
a[1] = 1;
b[1] = 2;
for(int i = 1; i < n; ++i)
{
adunare(c, a, b);
atribuire(a, b);
atribuire(b, c);
}
for(int i = c[0]; i > 0;--i)
g << c[i];
}
f.close();
g.close();
}