Pagini recente » Cod sursa (job #135208) | Cod sursa (job #16834) | Cod sursa (job #2669469) | Cod sursa (job #384111) | Cod sursa (job #2914835)
#include <fstream>
#include <string>
#include <set>
using namespace std;
int lastDigitOfSum(long n) {
int sum = 0;
set<int> s = {0, 1, 5, 6, 9};
for(int i = 1 ; i <= n ; i++) {
int lastDigit = i % 10;
if (s.find(lastDigit) != s.end())
sum += lastDigit;
else {
if (lastDigit == 4) {
sum += 6;
} else if (lastDigit == 2) {
if (i % 4 == 0)
sum += 6;
else
sum += 4;
} else if (lastDigit == 3) {
if (i % 20 == 3)
sum += 7;
else
sum += 3;
} else if (lastDigit == 7) {
if (i % 20 == 7)
sum += 3;
else
sum += 7;
} else {
if (i % 20 == 8)
sum += 6;
else
sum += 4;
}
}
}
return sum % 10;
}
int main() {
ifstream fin("cifra.in");
ofstream fout("cifra.out");
int t;
fin>>t;
long v[t];
int s[t];
for (int i = 0; i < t; i++) {
string n;
fin >> n;
v[i] = stol(n);
}
for (int i = 0; i < t; i++)
s[i] = lastDigitOfSum(v[i]);
for (int i = 0; i < t; i++)
fout << s[i] << "\n";
return 0;
}