Cod sursa(job #1804520)

Utilizator epermesterNagy Edward epermester Data 12 noiembrie 2016 17:45:23
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.13 kb
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
	ifstream in("cifra.in");
	string s;
	getline(in, s);
	int T = stoi(s);
	/*getline(cin, s);
	int k = stoi(s.substr(s.length() - 3, 1));
	cout << k;*/
	ofstream out("cifra.out");
	for (int i = 0;i < T;++i) {
		getline(in, s);
		int osszeg = 0;
		int szam = s.length();
		if(szam>2) szam = stoi(s.substr(szam - 2)); //stoi(s);
		else szam = stoi(s);
		for (int k = 1;k <= szam;k++) {
			int k1 = k % 10;
			switch (k1)
			{
			case 1: osszeg++;osszeg = osszeg % 10;break;

			case 2: 
				switch (k1%4)
				{
				case 0: osszeg += 6;break;
				case 1: osszeg += 2;break;
				case 2: osszeg += 4;break;
				case 3: osszeg += 8;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			case 3: 
				switch (k1 % 4)
				{
				case 0: osszeg += 1;break;
				case 1: osszeg += 3;break;
				case 2: osszeg += 9;break;
				case 3: osszeg += 7;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			case 4: 
				switch (k1 % 2)
				{
				case 0: osszeg += 6;break;
				case 1: osszeg += 4;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			case 5: osszeg += 5;osszeg = osszeg % 10;break;

			case 6: osszeg += 6;osszeg = osszeg % 10;break;

			case 7:
				switch (k1 % 4)
				{
				case 0: osszeg += 1;break;
				case 1: osszeg += 7;break;
				case 2: osszeg += 9;break;
				case 3: osszeg += 3;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			case 8:
				switch (k1 % 4)
				{
				case 0: osszeg += 6;break;
				case 1: osszeg += 8;break;
				case 2: osszeg += 4;break;
				case 3: osszeg += 2;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			case 9:
				switch (k1 % 2)
				{
				case 0: osszeg += 1;break;
				case 1: osszeg += 9;break;
				default:
					break;
				}
				osszeg = osszeg % 10;
				break;

			default:
				break;
			}
		}
		osszeg = osszeg % 10;
		if(s.length()>3) osszeg *=stoi(s.substr(s.length() - 3, 1));
		out << osszeg % 10<<endl;
	}
}