Cod sursa(job #365484)

Utilizator veleanduAlex Velea veleandu Data 18 noiembrie 2009 21:23:54
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include<fstream>
#include<iostream>
using namespace std;
long VAL[11][2];
long NR[10],i,j,suma,nr,T,n;
char N[102];
int main()
{
// pt cei care vad aceasta sursa ... am calculart si mi-a iesit ...
// din 200 in 200 ultima cifra va si 0
// deci trebuie sa calculam suma (n%200)
// facem niste alocari .. cu rezultatele (22^22 are ultima cifra 4 ca si 42^42 ...)
VAL[1][0]=1;
NR[1]=1;
VAL[0][0]=0;
NR[0]=0;
VAL[2][0]=4;
VAL[2][1]=2;
NR[2]=2;

VAL[3][0]=3;
VAL[3][1]=7;
NR[3]=2;

VAL[4][0]=6;
NR[4]=1;

VAL[5][0]=5;
NR[5]=1;

VAL[6][0]=6;
NR[6]=1;

VAL[7][0]=3;
VAL[7][1]=7;
NR[7]=2;

VAL[8][0]=6;
VAL[8][1]=4;
NR[8]=2;

VAL[9][0]=9;
NR[9]=1;

// am terminat .. acu partea cea mai simpla
 
ifstream in("cifra.in");
ofstream out("cifra.out");

in>>T;
for(i=1;i<=T;i++)
{
     in.getline(N,102);
     nr=N[strlen(N)-2]-'0';
     if(nr==0)
              nr=(N[strlen(N)-1]-'0')*10;
     else
              nr=nr*10+N[strlen(N)-1]-'0';
     // economisim timp ... suma din 20 in 20 este 1 deci ...;
     suma=0;
     suma=nr/20;
     nr=nr%20;
     for(j=1;j<=nr;j++)
     {
              suma+=VAL[j][j%NR[j]];
     }
     suma=suma%10;
     out<<suma<<endl;
     // acu suntem gata :))
}
out.close();
in.close();

return 0;
}