2 / 3
Dec 2019

Czy może ktoś zobaczyć jaki błąd jest? Jest błędna odpowiedź, czy dotyczy to tego że podaje liczbę oznaczającą liczbę działań przykładowo dwa i wpisuje jedno pod drugim a następnie na wyjściu powinien być taki wynik też jeden pod drugim czy może w obliczeniach jest coś nie tak?

import java.math.BigDecimal;
import java.util.Scanner;

public class Potegowanie {

public static void main (String[] args) {		
Scanner sc = new Scanner(System.in);	
if (sc.hasNextInt()) {
	int a = sc.nextInt();
	if(1 <= a && a <= 10) {
	for(int i=1; i<=a; i++) {
		int b =sc.nextInt();
	    int c = sc.nextInt();
		if (1 <= b && b <=1000000000 && 1<= c && c <=1000000000) {
	     if (b > 10) {
              int a1 = b % 10;
                BigDecimal a2 =BigDecimal.valueOf(a1);
                if (c > 10) {              	                        	            
                    int b1 = (c % 10) + 2;
                 BigDecimal potega = a2.pow(b1);
                    BigDecimal wynik = potega.remainder(new BigDecimal(10));
                    System.out.println(wynik);
                } else {
                	 BigDecimal potega2 = a2.pow(c);
	                    BigDecimal wynik2 = potega2.remainder(new BigDecimal(10));
                    System.out.println(wynik2);
                }
            } else {
                if (c > 10) {            	
                    int b1 = (c % 10) + 2;
                    BigDecimal b2 =BigDecimal.valueOf(b1);
                    BigDecimal potega = b2.pow(b);
                    BigDecimal wynik = potega.remainder(new BigDecimal(10));
                    System.out.println(wynik);
                } else {                	
                   BigDecimal potega2 =new BigDecimal(b).pow(c);
                    BigDecimal wynik2 = potega2.remainder(new BigDecimal(10));
                    System.out.println(wynik2);
                }
            }
		}
	} 
	}
} sc.close();

}
}

  • created

    Dec '19
  • last reply

    Dec '19
  • 2

    replies

  • 865

    views

  • 3

    users

  • 1

    link

Nie musisz sprawdzać:

bo autor zadania to gwarantuje, a kolejne wcięcia zaciemniają obraz.

Wykładnik zachowuje się cyklicznie dla kolejnych wartości. Cykliczność nie jest co 10 dlatego wyrażenie:

daje złe wyniki.

Mam wrażenie że do Twojego programu wkradł się chaos w oznaczeniach:

Dla danych gdzie podstawa jest nie większa niż 10 oraz wykładnik większy niż 10:
wykładnik podnosisz do potęgi o wartości podstawy.

Nie wiem czy w innych przypadkach też jest źle, bo trudno analizować.