Cod sursa(job #1966083)

Utilizator shantih1Alex S Hill shantih1 Data 14 aprilie 2017 21:15:14
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

unsigned int n, i, j, sum, k, nr, v[100], x;
string s;

int main() {
    
    ifstream fin("cifra.in");
    ofstream fout("cifra.out");
	
    fin >> n;
	getline(fin, s);
	
	v[1] = 1;
	for (k = 2; k <= 100; k++)
	{
		j = k;
		sum = 0;
		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;
		}

		v[k] = (v[k-1] + sum % 10) % 10;
	}
	
    for (i = 1; i <= n; i++)
    {
		getline(fin, s);
		
		k = 0;
		if (s.size() > 1)
		{
			k = (s[s.size()-2]-'0')*10 + (s[s.size()-1]-'0');
		}
		else if (s.size() == 1)
		{
			k = s[s.size()-1]-'0';
		}
		fout << v[k] << "\n";
	}
}