Cod sursa(job #1010364)

Utilizator keisecGinghina Cristian keisec Data 14 octombrie 2013 19:28:45
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdlib.h>
#include<stdio.h>

#define SIZE 100

int v[SIZE];
int p;

void add(int i)
{
  v[i]+=1;
  if(v[i]==5){
    add(i+1);
    v[i]=0;
  }
  p--;
}

int sum()
{
  
  int s=0;
  int pow=1;
  for(int i=0;i<SIZE;i++){
    s+=v[i]*pow;
    pow*=5;
  }
  return s==0?1:p==0?s*5:-1;
}

int main()
{
  FILE *fin,*fout;
  fin=fopen("fact.in","r");
  fscanf(fin,"%d",&p);
  fclose(fin);
  
  for(int i=0;i<SIZE;i++){
    v[i]=0;
  }
  
  while(p>0){
    add(0);
  }
  
  fout=fopen("fact.out","w");
  fprintf(fout,"%d",sum());
  fclose(fout);
  
  return 0;
}