Cod sursa(job #2087679)

Utilizator dragos.galeteanu2001Dragos Iulian dragos.galeteanu2001 Data 13 decembrie 2017 22:38:22
Problema Nunta Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>

int main()
{
    char a[999], b[999], c[999], z;
    int i, rest, j, N, aa, bb, cc;
    FILE *f=fopen("nunta.in","r");
    fscanf(f,"%d",&N);
    fclose(f);
    aa=1; a[0]='1';
    bb=1; b[0]='2';
    f=fopen("nunta.out","w");
    if (N==1) {
        fprintf(f,"%d",1);
        fclose(f);
        return 0;
    }
    if (N==2) {
        fprintf(f,"%d",2);
        fclose(f);
        return 0;
    }

    for (i=3; i<=N; i++)
    { rest=0;

    if (bb>aa)
    { for (j=aa; j<bb; ) a[j++]='0';
      aa=bb; }

    for (j=0; j<aa; j++)
    { z=((a[j]-'0')+(b[j]-'0')+rest)%10+'0';
    rest=((a[j]-'0')+(b[j]-'0')+rest)/10;
    a[j]=z; }

    if (rest) { a[j]=rest+'0'; aa++; }
    for (j=0; j<bb; j++) c[j]=b[j]; cc=bb;
    for (j=0; j<aa; j++) b[j]=a[j]; bb=aa;
    for (j=0; j<cc; j++) a[j]=c[j]; aa=cc; }

    for (i=bb-1; i>=0; i--) fputc(b[i],f);
    fclose(f);
    return 0;
}