Cod sursa(job #2785929)

Utilizator Mihai.MocanuMihai mmm Mihai.Mocanu Data 19 octombrie 2021 20:31:29
Problema Patrate2 Scor 50
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
#define BAZA 1000000

int v[40000];

int Inmultire(int a,int n){
  int i,t;
  i=0;
  t=0;
  while(i<n || t>0){
    v[i]=(a*v[i])+t;
    t=v[i]/BAZA;
    v[i]%=BAZA;
    i++;
  }
  if(i>=n){
    n=i;
  }
  return n;
}

int main(){
  int n,i,z,m,x;
  FILE *fin,*fout;
  fin=fopen("patrate2.in","r");
  fout=fopen("patrate2.out","w");
  fscanf(fin,"%d",&n);

  v[0]=1;
  m=1;
  for(i=2;i<=n;i++){
    m=Inmultire(i,m);
  }

  n=n*n;
  z=10;
  x=1<<z;
  while(n>=z){
    n-=z;
    m=Inmultire(x,m);
  }
  while(n>0){
    n--;
    m=Inmultire(2,m);
  }

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

  fclose(fin);
  fclose(fout);
  return 0;
}