Przekroczono limit czasu. Jakieś pomysły jak poprawić wydajność?
przy liczbach: 99999, 999999 muli się.
Z góry dzięki za odpowiedzi
PS. Edytowałem, żeby nie zakładać drugiego tematu. poprzedni dotyczył błędu kompilacji.
Kod:
public class Main{
public static void main(String[] args) throws java.lang.Exception {
Scanner input = new Scanner(System.in);
// System.out.println("Insert number of cases (between 1 and 10): ");
int numberOfCases = input.nextInt();
BigInteger[][] arrayOfNumbers = new BigInteger[numberOfCases][2];
BigInteger[] result = new BigInteger[numberOfCases];
String[] lastDigit = new String[numberOfCases];
// int numberOfCases = 2;
// BigInteger[][] arrayOfNumbers = {{BigInteger.valueOf(2),BigInteger.valueOf(2)},{BigInteger.valueOf(4),BigInteger.valueOf(4)}};
for (int i = 0; i < arrayOfNumbers.length; i++) {
// System.out.println("Insert two numbers (between 1 and 1 000 000 000): ");
for (int j = 0; j < arrayOfNumbers[i].length; j++) {
arrayOfNumbers[i][j] = input.nextBigInteger();
}
}
// System.out.println("Last digits of results");
for (int i = 0; i < arrayOfNumbers.length; i++) {
result[i] = BigInteger.valueOf(1);
BigInteger base = arrayOfNumbers[i][0];
BigInteger index = arrayOfNumbers[i][1];
for (BigInteger bi = BigInteger.valueOf(1); bi.compareTo(index) <= 0; bi = bi.add(BigInteger.ONE)) {
result[i] = result[i].multiply(base);
}
lastDigit[i] = String.valueOf(result[i]);
char charArray[] = lastDigit[i].toCharArray();
for (int l = 0; l < charArray.length; l++) {
if (l == ((charArray.length) - 1)) {
System.out.println(charArray[l]);
// System.out.printf("%d %s \n", result[i], charArray[l]);
}
}
}
}
}