Cod sursa(job #1824601)

Utilizator v_silviuVlasceanu Silviu v_silviu Data 8 decembrie 2016 01:37:43
Problema Cifra Scor 60
Compilator java Status done
Runda Arhiva de probleme Marime 1.43 kb
import java.io.*;
import java.util.Scanner;

/**
 * Created by vlasceanusilviu on 12/8/16.
 */
class Main {

    private static int[] partialSums = new int[100];

    private static int[][] digits = {
            {0, 0, 0, 0},
            {1, 1, 1, 1},
            {2, 4, 8, 6},
            {3, 9, 7, 1},
            {4, 6, 4, 6},
            {5, 5, 5, 5},
            {6, 6, 6, 6},
            {7, 9, 3, 1},
            {8, 4, 2, 6},
            {9, 1, 9, 1},
    };

    private static void initPartialSums() {
        for (int i = 1; i <= 99; ++i) {
            partialSums[i] = (partialSums[i - 1] + digits[i % 10][(i - 1) % 4]) % 10;
        }
    }

    public static void main(String[] args) throws IOException {

        Scanner reader = new Scanner(new FileInputStream("cifra.in"));
        BufferedWriter writer = new BufferedWriter(new FileWriter("cifra.out"));

        initPartialSums();

        int T = reader.nextInt();

        for (; T > 0; --T) {

            String n = reader.next();

            int lastDigit = Character.getNumericValue(n.charAt(n.length() - 1));
            int preLastDigit = n.length() >= 2 ? Character.getNumericValue(n.charAt(n.length() - 2)) : 0;
            int castedN = preLastDigit * 10 + lastDigit;

            int result = partialSums[castedN];
            System.out.println(result);

            writer.write(String.valueOf(result) + "\n");
        }

        reader.close();
        writer.close();
    }

}