Cod sursa(job #1397865)
| Utilizator | Data | 23 martie 2015 20:02:59 | |
|---|---|---|---|
| Problema | Cifra | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
int n,i,t,v[105];
char a[105];
int lgput(int n){
int s=1,p=n;
while(p!=0){
if(p%2==1){
s=(s*n)%10;
}
n=(n*n)%10;
p/=2;
}
return s;
}
void bulid(){
for(int i=1;i<=100;i++){
v[i]=(v[i-1]+lgput(i))%10;
}
}
int main(){
bulid();
fin>>t;
while(t--){
fin>>a+1;
n=strlen(a+1);
if(n==1){
fout<<v[a[n]-'0']<<"\n";
}
else{
fout<<v[a[n]-'0'+(a[n-1]-'0')*10]<<"\n";
}
}
return 0;
}
