Cod sursa(job #1294153)

Utilizator vgabi94Vaduva Gabriel vgabi94 Data 17 decembrie 2014 00:20:49
Problema Cifra Scor 50
Compilator java Status done
Runda Arhiva de probleme Marime 1.36 kb
import java.io.*;
import java.util.*;

public class Main {
	// Acest pattern se repeta din 100 in 100
	// Fiecare last[i] reprezinta ultima cifra a sumei 1^1 + ... + i^i
	// Din acest motiv, selectia ultimei cifre
	// se face pe baza ultimelor doua cifre din N
	private static int[] last = { 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,0 };

	public static void main(String[] args) throws IOException {
		Scanner scn = new Scanner(new FileInputStream("cifra.in"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("cifra.out"));
		scn.nextLine(); // Pe prima linie se afla T, care nu ma intereseaza
		String line = "";
		
		while (scn.hasNextLine()) {
			line = scn.nextLine();
			if (line.length() == 1) {
				int ultima = Character.getNumericValue(line.charAt(line.length() - 1));
				bw.write(last[ultima] + "\n");
			}
			else {
				int penultima = Character.getNumericValue(line.charAt(line.length() - 2));
				int ultima = Character.getNumericValue(line.charAt(line.length() - 1));
				bw.write(last[penultima * 10 + ultima] + "\n");
			}
		}
		
		scn.close();
		bw.close();
	}

}