Cod sursa(job #3127020)

Utilizator Y.MalmsteenB.P.M. Y.Malmsteen Data 7 mai 2023 09:11:03
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>

using namespace std;

const int MAXN = 215,
          BAZA = 10;

int N;
unsigned char F1[MAXN] = {1, 1},
         F2[MAXN] = {1, 2},
         *M1 = F1, *M2 = F2, *AX;

void sum(unsigned char A[], unsigned char B[])
///void sum(unsigned char *A, unsigned char *B)
{
    ///A <-- A+B
    int T = 0;
    if(A[0] < B[0])
        A[0] = B[0];
    for(int i = 1; i <= A[0]; i++)
    {
        T += A[i] + B[i];
        A[i] = T % BAZA;
        T /= BAZA;
    }
    if(T > 0)
        A[++A[0]] = 1;
}

int main()
{
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    scanf("%i", &N);
    if(N <= 2)
        M2[1] = N;
    else
        for(int i = 3; i <= N; i++)
        {
            sum(M1, M2);
            ///swap(M1, M2);
            AX = M1;
            M1 = M2;
            M2 = AX;
        }
    for(int i = M2[0]; i >= 1; i--)
        putc(M2[i] + '0', stdout);
    return 0;
}