Cod sursa(job #1944137)

Utilizator mariusn01Marius Nicoli mariusn01 Data 28 martie 2017 22:50:30
Problema Nunta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <cstdio>

char f1[210], f2[210];


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

void suma(char *a, char *b, char *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(char *a,char *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++) {
            if (i%2 == 1)
                suma(f1, f2, f1);
            else
                suma(f2, f1, f2);
        }
        if (n%2 == 1)
            for (i=f2[0];i>=1;i--){
                fprintf(fout,"%d",f2[i]);
            }
        else
            for (i=f1[0];i>=1;i--){
                fprintf(fout,"%d",f1[i]);
            }
    }

    return 0;
}