Cod sursa(job #781571)

Utilizator slyfer12Damian Alexandru slyfer12 Data 24 august 2012 17:50:00
Problema Cifra Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <string>
int pattern1[18]={0,1,5,2,8,3,9,2,8,0,1,7,0,6,1,7,4,8},pattern2[10]={7,4,1,8,5,2,9,6,3,0};
using namespace std;
int suma(int y,int x){
    int r=0;
   if(y){
     if(y%2!=0)
    r=9;
    }
       //cout<<"x="<<x<<" r="<<r<<" "<<pattern1[x+r-1]<<"\n";
  return (pattern1[r+x])%10;
}
int main()
{
    int t,i,k;string n;
       ifstream f("cifra.in");
       ofstream g("cifra.out");
       f>>t;
      for(i=1;i<=t;i++){
        f>>n;
        k=n.size();
      if(k==1){
          if(n[k-1]-'0'==9)
          g<<pattern2[0]<<"\n";
          else
          g<<suma(0,n[k-1]-'0')<<"\n";
      }
        else
        {if(n[k-2]-'0'==0)
          g<<pattern2[9]<<"\n";
            else {if(n[k-1]-'0'==9)
          g<<pattern2[n[k-2]-'0']<<"\n";
          else g<<(pattern2[n[k-2]-'0'-1]+suma(n[k-2]-'0',n[k-1]-'0'))%10<<"\n"; }
}}
      f.close();
      g.close();
    return 0;
}