Cod sursa(job #2023729)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 19 septembrie 2017 13:50:48
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXC 200

char F1[MAXC], F2[MAXC];
char aux[MAXC];

void add(int A[], int B[]){
      int i, t = 0;
      for(i = 1; i<=A[0] || i<=B[0] || t; i++, t/=10)
              A[i] = (t += A[i] + B[i]) % 10;
      A[0] = i - 1;
}

int main(){
    FILE*fi,*fo;
    fi=fopen("nunta.in","r");
    fo=fopen("nunta.out","w");

    int n;
    fscanf(fi,"%d", &n);
    if(n == 1){
        fprintf(fo,"1");
        return 0;
    }

    F1[0] = 1;
    F1[1] = 1;

    F2[0] = 1;
    F2[1] = 2;

    for(int i = 3; i <= n; i++){
        for(int i = 0; i <= F2[0]; i++)
            aux[i] = F2[i];
        add(F2, F1);
        for(int i = 0; i <= aux[0]; i++)
            F1[i] = aux[i];
    }

    for(int i = F2[0]; i > 0; i--)
        fprintf(fo,"%d", F2[i]);

    fclose(fi);
    fclose(fo);
    return 0;
}