Cod sursa(job #2026885)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 25 septembrie 2017 11:58:55
Problema Nunta Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>

unsigned char x[3][215];

void sum(unsigned char a[], unsigned char b[], unsigned char c[])
{
    unsigned char t = 0, mx = a[0];
    if(b[0] > mx)
        mx = b[0];
    for (unsigned char i = 1; i <= mx; ++i){
        c[i] = a[i] + b[i] + t;
        t = c[i]/10;
        c[i] %= 10;
    }
    c[0] = mx;
    if(t)
        c[++c[0]] = t;
}

int main()
{
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    int n;
    scanf("%d", &n);
    x[1][0] = 1;
    x[1][1] = 1;
    x[2][0] = 1;
    x[2][1] = 2;
    for (int i = 3; i <= n; ++i)
        sum(x[(i-1)%3], x[(i-2)%3], x[i%3]);
    for (int i = x[n%3][0]; i > 0; --i)
        fputc(x[n%3][i]+'0', stdout);
    fclose(stdin);
    fclose(stdout);
    return 0;
}