Cod sursa(job #1966024)

Utilizator shantih1Alex S Hill shantih1 Data 14 aprilie 2017 20:29:56
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.69 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

unsigned int n, i, j, sum, k;
string s;

int main() {
    
    ifstream fin("cifra.in");
    ofstream fout("cifra.out");
	
    fin >> n;
	getline(fin, s);

    for (i = 1; i <= n; i++)
    {
		getline(fin, s);
		
		k = 0;
		for (j = 0; j < s.size(); j++)
		{
			k = k * 10 + (s[j] - '0');
			k = k % 100;
		}
		
		k = k % 100;
		
		/*
		 1 5 2 8 3 9 2 8 7 7
		 8 4 7 3 8 4 1 5 4 4
		 5 9 6 2 7 3 6 2 1 1
		 2 8 1 7 2 8 5 9 8 8
		 9 3 0 6 1 7 0 6 5 5
		 6 2 5 1 6 2 9 3 2 2
		 3 7 4 0 5 1 4 0 9 9
		 0 6 9 5 0 6 3 7 6 6
		 7 1 8 4 9 5 8 4 3 3
		 4 0 3 9 4 0 7 1 0 0
		 1 5 2 8 3 9 2 8 7 7
		 8 4 7 3 8 4 1 5 4 4
		 */
		
		sum = 0;
		for (j = 1; j <= k; j++)
		{
			if (j % 10 == 1)	sum += 1;
			else if (j % 10 == 2)
			{
				if (j % 4 == 1)		sum += 2;
				if (j % 4 == 2)		sum += 4;
				if (j % 4 == 3)		sum += 8;
				if (j % 4 == 0)		sum += 6;
			}
			else if (j % 10 == 3)
			{
				if (j % 4 == 1)		sum += 3;
				if (j % 4 == 2)		sum += 9;
				if (j % 4 == 3)		sum += 7;
				if (j % 4 == 0)		sum += 1;
			}
			else if (j % 10 == 4)
			{
				if (j % 2 == 1)		sum += 4;
				if (j % 2 == 0)		sum += 6;
			}
			else if (j % 10 == 5)	sum += 5;
			else if (j % 10 == 6)	sum += 6;
			else if (j % 10 == 7)
			{
				if (j % 4 == 1)		sum += 7;
				if (j % 4 == 2)		sum += 9;
				if (j % 4 == 3)		sum += 3;
				if (j % 4 == 0)		sum += 1;
			}
			else if (j % 10 == 8)
			{
				if (j % 4 == 1)		sum += 8;
				if (j % 4 == 2)		sum += 4;
				if (j % 4 == 3)		sum += 2;
				if (j % 4 == 0)		sum += 6;
			}
			else if (j % 10 == 9)
			{
				if (j % 2 == 1)		sum += 9;
				if (j % 2 == 0)		sum += 1;
			}
			sum = sum % 10;
		}
		fout << sum % 10 << "\n";
	}
}