Cod sursa(job #480787)

Utilizator ariel_roAriel Chelsau ariel_ro Data 29 august 2010 16:12:28
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <limits.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

using namespace std;

int constanta[100]={0,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};

int v[100];

void precompute()
{
    int sum = 0;
    for (int i = 0; i < 100; i++)
    {
        int prod = i % 10;
        for (int j = 0; j < i - 1; j++)
        {
            prod *= i;
            prod %= 10;
        }

        sum += prod;
        v[i] = sum % 10;
    }
}

int main()
{
    precompute();

    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);

    char nr[100];
    int t, x, last;
    scanf("%d\n", &t);
    for (int i = 0; i < t; i++)
    {
        gets(nr);
        x = strlen(nr);
        if (x > 1)
            last = (nr[x - 2] - '0') * 10 + (nr[x - 1] - '0');
        else
            last = nr[0]-'0';

        printf("%d\n", v[last]);
    }

    return 0;
}