Cod sursa(job #3184189)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 14 decembrie 2023 18:44:08
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>
#define nl '\n'

using namespace std;

ifstream fin("nunta.in");
ofstream fout("nunta.out");

int n, a[300], b[300], c[300];

void add(int *dest, int *t1, int *t2)
{
    int i, carry = 0;
    for (i = 1; i <= max(t1[0], t2[0]); i++)
    {
        dest[0] = i;
        carry+=t1[i]+t2[i];
        dest[i] = carry%10;
        carry/=10;
    }
    while (carry)
    {
        dest[0] = i;
        dest[i++] = carry%10;
        carry/=10;
    }
    return;
}
void cpy(int *dest, int *src)
{
    for (int i = 1; i <= src[0]; i++)
        dest[i] = src[i];
    dest[0] = src[0];
    return;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    fin >> n;
    a[0] = b[0] = 1;
    a[1] = 1;
    b[1] = 2;
    if (n == 1 || n == 2)
    {
        fout << n;
        return 0;
    }
    for (int i = 3; i <= n; i++)
    {
        add(c, a, b);
        cpy(a, b);
        cpy(b, c);
    }
    for (int i = c[0]; i >= 1; i--)
        fout << c[i];
    return 0;
}