Cod sursa(job #1606042)

Utilizator dnprxDan Pracsiu dnprx Data 19 februarie 2016 19:40:36
Problema Nunta Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <cstdio>
using namespace std;
char a[205], b[205], c[205];
short na,nb,nc;
int n;
inline void Aduna()
{
    short i, t, x;
    t = 0;
    nc = nb;
    for (i = 1; i <= nb; ++i)
    {
        x = (a[i]-'0') + (b[i]-'0') + t;
        if (x >= 10) {c[i] = x - 10 + '0'; t = 1;}
        else {c[i] = x + '0'; t = 0;}
    }
    if (t > 0)
        c[++nc] = '1';
}
int main()
{
    short i, j;
    freopen("nunta.out", "w", stdout);
    freopen("nunta.in", "r", stdin);
    scanf("%d", &n);
    if (n == 1)printf("1\n");
    else if (n == 2) printf("2\n");
    else
    {
        for (i = 0; i <= 204; ++i)
            a[i] = b[i] = c[i] = '0';
        a[1] = '1'; na = 1;
        b[1] = '2'; nb = 1;
        for (i = 3; i <= n; ++i)
        {
            Aduna();
            na = nb;
            for (j=1;j<=na;++j)
                a[j] = b[j];
            nb = nc;
            for (j=1;j<=nb;++j)
                b[j] = c[j];
        }
        for (i = nc; i >= 1; --i)
            printf("%c",c[i]);
        printf("\n");
    }
    return 0;
}