Pagini recente » Cod sursa (job #1619397) | Cod sursa (job #1747147) | Cod sursa (job #2521069) | Imbunatatire teste | Cod sursa (job #2404945)
#include <fstream>
using namespace std;
ifstream fin("nunta.in");
ofstream fout("nunta.out");
int matrix[3][500], l[3];
void adunare(int i)
{
int j = i + 1;
i%= 3;
j%= 3;
int k;
if (i + j == 3)
{
k = 0;
}
if (i + j == 2)
{
k = 1;
}
if (i + j == 1)
{
k = 2;
}
int trans = 0;
l[k] = max(l[i], l[j]);
for (int z = 0; z < max(l[i], l[j]); z++)
{
trans+= matrix[i][z] + matrix[j][z];
matrix[k][z] = trans % 10;
trans/= 10;
}
if (trans > 0)
{
matrix[k][l[k]] = trans;
l[k]++;
}
}
int main()
{
int n;
fin >> n;
l[0] = l[1] = 1;
matrix[0][0] = 1;
matrix[1][0] = 2;
for (int i = 0; i < n; i++)
{
adunare(i);
}
n%= 3;
if (n == 0)
{
n = 3;
}
n--;
for (int i = l[n] - 1; i >= 0; i--)
{
fout << matrix[n][i];
}
return 0;
}