Cod sursa(job #129793)

Utilizator mi2din2007Robert Galan mi2din2007 Data 30 ianuarie 2008 11:12:21
Problema Cifra Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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>
#include<string.h>
using namespace std;
int r20,resturiRepetabile[20]={0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4};
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;
  s=(s+resturiRepetabile[r20])%10;
  g<<s<<endl;
 }
 f.close();
 g.close();
 return 0;
}