Cod sursa(job #1966060)

Utilizator shantih1Alex S Hill shantih1 Data 14 aprilie 2017 20:53:30
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.65 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;
	}
	
	/*
	 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
	 */

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