Cod sursa(job #129701)

Utilizator mi2din2007Robert Galan mi2din2007 Data 29 ianuarie 2008 21:53:39
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
/*
    Se incadreaza in timp
    Se iau ultimele 2 cifre alte numarului si se formeaza grupe de cate 20
    Pentru cele ramase se aduna resturile repetabile
    Suma unei grupe de 20 este 4
*/
#include<fstream.h>
#include<string.h>
int r20,resturiRepetabile[20]={0,1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9};
int Grupe20(char *sirTmp){
 int DouaCifre;
 if(strlen(sirTmp)==1)
        DouaCifre=(int)sirTmp[strlen(sirTmp)-1]-(int)'0';
 else
        DouaCifre=((int)sirTmp[strlen(sirTmp)-2]-(int)'0')*10+((int)sirTmp[strlen(sirTmp)-1]-(int)'0');
 r20=DouaCifre%20;
 return DouaCifre/20;
}
int main(){
 ifstream f("cifra.in");
 ofstream g("cifra.out");
 int grupeDe20;
 char n[101];
 int t,s,i,k;
 f>>t;f.get();
 for(i=0;i<t;i++){
  f.getline(n,sizeof(n));
  grupeDe20=Grupe20(n);
  s=grupeDe20*4;
  while(s>9)s%=10;
  for(k=1;k<=r20;k++){
          s=(s+resturiRepetabile[k])%10;
  }
  g<<s<<endl;
 }
 f.close();
 g.close();
 return 0;
}