Cod sursa(job #1944117)

Utilizator mariusn01Marius Nicoli mariusn01 Data 28 martie 2017 22:39:16
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <cstdio>

int f1[1000], f2[1000], f3[1000];


int getCifra(int *a, int i){
    if (i>a[0])
        return 0;
    else
        return a[i];
}

void suma(int *a, int *b, int *c) {
    int t = 0,max;
    max = a[0];
    if (max<b[0])
        max=b[0];
    for (int i=1;i<=max;i++) {
        int aux = getCifra(a,i)+getCifra(b,i)+t;
        c[i]=aux%10;
        t=aux/10;
    }
    if (t==1) {
        c[0]=max+1;
        c[max+1]=1;
    } else {
        c[0]=max;
    }
}


void atrib(int *a,int *b){
    for (int i=0;i<=b[0];i++) {
        a[i]=b[i];
    }
}


int main(){
    int n,i;
    FILE *fin = fopen("nunta.in","r");
    fscanf(fin,"%d",&n);
    FILE *fout = fopen("nunta.out","w");
    if (n<2) {
        fprintf(fout,"%d",1);
    } else {

        f1[0]=1;f1[1]=1;
        f2[0]=1;f2[1]=1;
        for (i=1;i<=n-1;i++) {

            suma(f1,f2,f3);
            atrib(f1,f2);
            atrib(f2,f3);


        }

        for (i=f3[0];i>=1;i--){
            fprintf(fout,"%d",f3[i]);
        }
    }

    return 0;
}