Pagini recente » Cod sursa (job #1139240) | Cod sursa (job #2917692) | Cod sursa (job #2626352) | Cod sursa (job #3289702) | Cod sursa (job #365484)
Cod sursa(job #365484)
#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;
}