Pagini recente » Cod sursa (job #2870782) | Cod sursa (job #401500) | Cod sursa (job #469463) | Cod sursa (job #1965189) | Cod sursa (job #1872996)
#include <cstdio>
using namespace std;
struct BigNumber
{
char v[220];
unsigned char lv;
};
void add(const BigNumber& a, const BigNumber& b, BigNumber& rez)
{
int i, r = 0;
for(i = 0; i < b.lv || i < a.lv || r != 0; i++)
{
r += b.v[i] + a.v[i];
rez.v[i] = r % 10;
r /= 10;
}
rez.lv = i;
}
void print(const BigNumber& a)
{
for(int i = a.lv - 1; i >= 0; i--)
{
printf("%d", a.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) print(v[0]);
else if(n == 2) print(v[1]);
else
{
for(int i = 2; i < n; i++)
{
add(v[(i - 2) % 3], v[(i - 1) % 3], v[i % 3]);
}
print(v[(n - 1) % 3]);
}
return 0;
}