Cod sursa(job #2786586)

Utilizator teochess2017Togan Teodor-Bogdan teochess2017 Data 21 octombrie 2021 10:59:11
Problema Patrate2 Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXNRCFPUT 3334
#define MAXNRCFFACT 200

int v[MAXNRCFFACT + MAXNRCFPUT];

int inmultire(int nrcf, int a){
  int aux, i, cv;
  aux = 0;
  i = 0;
  while((i < nrcf) || (0 < aux)){
    cv = v[i];
    v[i] = (aux + v[i] * a) % 10;
    aux = (aux + cv * a) / 10;
    i++;
  }
  return i;
}
int fact(int n){
  int i, nrcf;
  v[0] = 1;
  nrcf = 1;
  for(i = 2; i <= n; i++){
    nrcf = inmultire(nrcf, i);
  }
  return nrcf;
}
int put2(int n, int nrcf){
  int i;
  for(i = 0; i < n; i++){
    nrcf = inmultire(nrcf, 2);
  }
  return nrcf;
}

int main()
{
    FILE *fin, *fout;
    int n, nrcf, i;
    fin = fopen("patrate2.in", "r");
    fscanf(fin, "%d", &n);
    fclose(fin);
    nrcf = fact(n);
    nrcf = put2(n * n, nrcf);
    fout = fopen("patrate2.out", "w");
    for(i = nrcf - 1; 0 <= i; i--){
      fprintf(fout, "%d", v[i]);
    }
    fclose(fout);
    return 0;
}