Pagini recente » Cod sursa (job #2552017) | Cod sursa (job #3000747) | Cod sursa (job #1358156) | Cod sursa (job #423504) | Cod sursa (job #2324927)
#include <fstream>
using namespace std;
ifstream fin("nunta.in");
ofstream fout("nunta.out");
class BigNum
{
public:
int data[1005];
BigNum operator+(BigNum x)
{
BigNum rez;
int t = 0;
int lg = max(this->data[0], x.data[0]);
for(int i = this->data[0] + 1; i <= lg + 1; ++i)
this->data[i] = 0;
for(int i = x.data[0] + 1; i <= lg + 1; ++i)
x.data[i] = 0;
for(int i = 1; i <= lg; ++i)
{
rez.data[i] = this->data[i] + x.data[i] + t;
t = rez.data[i] / 10;
rez.data[i] %= 10;
}
rez.data[0] = lg;
if(t)
{
rez.data[0] = rez.data[0] + 1;
rez.data[rez.data[0]] = t;
}
return rez;
}
};
BigNum a, b, c;
int main()
{
int n;
fin >> n;
a.data[0] = 1;
a.data[1] = 1;
b.data[0] = 1;
b.data[1] = 2;
if(n == 1)
{
fout << "1\n";
return 0;
}
if(n == 2)
{
fout << "2\n";
return 0;
}
for(int i = 3; i <= n; ++i)
{
c = a + b;
a = b;
b = c;
}
for(int i = c.data[0]; i >= 1; --i)
fout << c.data[i];
fout << '\n';
return 0;
}