Pagini recente » Cod sursa (job #379925) | Cod sursa (job #1286560) | Cod sursa (job #555420) | Cod sursa (job #2296802) | Cod sursa (job #1872989)
#include <cstdio>
using namespace std;
struct BigNumber
{
char v[220];
unsigned char lv;
void addTo(const BigNumber& a, BigNumber& rez)
{
int i, r = 0;
for(i = 0; i < lv || i < a.lv || r != 0; i++)
{
r += v[i] + a.v[i];
rez.v[i] = r % 10;
r /= 10;
}
rez.lv = i;
}
void print()
{
for(int i = lv - 1; i >= 0; i--)
{
printf("%d", v[i]);
}
}
};
BigNumber v[3];
int main()
{
freopen("nunta.in", "r", stdin);
freopen("nunta.out", "w", stdout);
int n;
scanf("%d", &n);
v[0].lv = 1;
v[0].v[0] = 1;
v[1].lv = 1;
v[1].v[0] = 2;
if(n == 1) v[0].print();
else if(n == 2) v[1].print();
else
{
for(int i = 2; i < n; i++)
{
v[(i - 2) % 3].addTo(v[(i - 1) % 3], v[i % 3]);
}
v[(n - 1) % 3].print();
}
return 0;
}