Cod sursa(job #124239)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 18 ianuarie 2008 18:01:00
Problema Nunta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <stdio.h>

long n,i,a[211],b[211],c[211];
long r,baza=10000;

int main(){
    freopen("nunta.in","r",stdin);
    freopen("nunta.out","w",stdout);
    
    scanf("%ld",&n);
    
    a[0]=1;a[1]=1;
    b[0]=1;b[1]=1;
    for (n--;n>0;n--){
        for (i=1;i<=b[0];i++)
            c[i]=a[i]+b[i];
        c[0]=b[0];
        r=0;
        for (i=1;i<=c[0];i++){
            c[i]+=r*baza;
            r=c[i]/baza;
            c[i]%=baza;
        }
        while (r){
              c[0]++;
              c[c[0]]=r%baza;
              r/=baza;
        }
     for (i=1;i<=b[0];i++)
         a[i]=b[i];
     a[0]=b[0];
     for (i=1;i<=c[0];i++)
         b[i]=c[i];
     b[0]=c[0];
    }
    printf("%ld",b[b[0]]);
    for (i=b[0]-1;i>0;i--){
        if (b[i]>=1000)
           printf("%ld",b[i]);
           else if (b[i]>=100)
                   {printf("0");printf("%ld",b[i]);}
                else if (b[i]>=10)
                     {printf("00");printf("%ld",b[i]);}
                     else{printf("000");printf("%ld",b[i]);}
    }
    printf("\n");
    fclose(stdin);
    fclose(stdout);
return 0;
}