Pagini recente » Cod sursa (job #2715003) | Cod sursa (job #443139) | Cod sursa (job #2255511) | Cod sursa (job #2513234) | Cod sursa (job #2664293)
#include "bits/stdc++.h"
using namespace std;
string adunare( string s1, string s2)
{
while(s1.size() < s2.size()) {
s1="0" + s1;
}
while(s2.size() < s1.size()) {
s2="0" + s2;
}
int m = 0, r;
string s;
for ( int i = s1.size() - 1; i > 0 ; i--) {
int c1 = s1[i] - '0';
int c2 = s2[i] - '0';
r = (c1 + c2 + m) % 10;
m = (c1 + c2 + m) / 10;
s = to_string(r) + s;
}
int c1 = s1[0] - '0';
int c2 = s2[0] - '0';
r = c1 + c2 + m;
s = to_string(r) + s;
return s;
}
bool comparare(string s1, string s2)
{
string s = s1;
while(s.size() < s2.size()) {
s="0" + s;
}
return s <= s2;
}
int putere (int c1, string c2)
{
int r = 1;
string d = "1";
while(comparare(d,c2)) {
r *= c1;
r %= 10;
d = adunare (d,"1");
}
return r;
}
int main()
{
ifstream cin("cifra.in");
ofstream cout("cifra.out");
int t;
cin >> t;
vector<string> v(t);
for(int i = 0; i < t; i++) {
cin >> v[i];
}
int rs = 0;
for (int i = 0; i < t; i++) {
string n = "1";
int a = 0;
while(comparare(n,v[i])) {
int c = n[n.size() - 1] - '0';
int p = putere(c,n);
a = (a + p) % 10 ;
n = adunare (n,"1");
}
cout << a << '\n';
}
return 0;
}