Cod sursa(job #305979)

Utilizator beyond_k7aOnutu Catalin beyond_k7a Data 19 aprilie 2009 01:26:49
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<fstream>
using namespace std;
int x[] = {0,1,5,2,8,3,9,2,8,7};
int y[] = {0,1,7,0,6,1,7,4,8,9};
char a[200];
int sir[200],i,j,w,t,n,r;


int main()
{
 ifstream f("cifra.in");
 ofstream g("cifra.out");
 f>>t;
 f.get();
 for(w=1;w<=t;w++)
 {
  r=0;
  f.getline(a,200);
  n=strlen(a);
  if(n>=2)
  {
   if((a[n-2]-'0')%2==0)
   {
    r+=7*((a[n-2]-'0')/2);                   
    r+=9*((a[n-2]-'0')/2);
   }                  
   if((a[n-2]-'0')%2==1)
   {
    r+=7*((a[n-2]-'0')/2+1);
    r+=9*((a[n-2]-'0')/2); 
   }                     
  }                      
  
  if((a[n-2]-'0')%2==0)
   r+=x[a[n-1]-'0'];
  else
   r+=y[a[n-1]-'0'];
   

  
  
  //for(;i<=n-1;i++)
   g<<r%10;
  g<<'\n';                
 }
 
 
 
 f.close();
 g.close();
 return 0;   
}
/*
fill(sir,sir+n+1,0);
  for(i=0;i<n-1;i++)
  {
   sir[i+1]=(a[i]-'0')*r;
   j=i+1;
   while(sir[j]>9)
   {
    sir[j-1]+=sir[j]/10;
    sir[j]%=10;         
    j--;     
   }
  } 
  sir[n-1]+=x[a[n-1]-'0'];
  j=n-1;
  while(sir[j]>9)
  {
   sir[j-1]+=sir[j]/10;
   sir[j]%=10;         
   j--;     
   
  }
  i=1;
  if(sir[0])
   i=0;
*/