9 / 11
Oct 2017

int a[] = new int[100];
int b[] = new int[100];

	Scanner skan = new Scanner(System.in);
	
	int n = skan.nextInt();
	
	for(int i=1; i<=n; i++){
		a[i] = skan.nextInt();
		b[i] = skan.nextInt();
	}
	
	for(int i=1; i<=n; i++)
		System.out.println(((int)Math.pow(a[i], b[i]))%10);
  • created

    Sep '17
  • last reply

    Oct '17
  • 10

    replies

  • 1.7k

    views

  • 3

    users

  • 1

    link

int a[] = new int[100];
int b[] = new int[100];
int wynik[] = new int[100];

	int n = skan.nextInt();
	
	for(int i=1; i<=n; i++){
		a[i] = skan.nextInt();
		b[i] = skan.nextInt();
	}
	for(int i=1; i<=n; i++){
		wynik[i]=(int) Math.pow(a[i], b[i]);
		String liczbaString = Integer.toString(wynik[i]);
		int dlugosc = liczbaString.length();
		char ostatnia = liczbaString.charAt(dlugosc-1);
		System.out.println(ostatnia);
	}

int a[] = new int[100];
int b[] = new int[100];

	Scanner skan = new Scanner(System.in);
	
	int n = skan.nextInt();
	
	for(int i=1; i<=n; i++){
		a[i] = skan.nextInt();
		b[i] = skan.nextInt();
	}
	
	for(int i=1; i<=n; i++)
		System.out.println(potegowanie(a[i],b[i])%10);

static int potegowanie (int a, int b){
	if(b==0)
	return 1;
	else
		return a*potegowanie(a,b-1);
	
}

Dzień dobry, zrobiłem zadanie na trzy sposoby, kody wkleiłem powyżej… Niestety sędzia nie akceptuje mi żadnego sposobu… Proszę o pomoc , o co chodzi…

Chodzi o to, zresztą jak zawsze każdemu kto pyta o to zadanie, że w każdym z tych kodów obliczasz potęgę dla (1 ≤ a,b ≤ 1 000 000 000), a on nie mieści się w twoim typie danych (int).

Rozumiem, że chodzi o zamianę, każdego int na long … zrobiłem tak w każdym z trzech sposobów. W dwó ch sposobach wyskakuje komunikat, “błąd wykonania”, a w sposobie w którym zamieniam inta na Stringa “Błędna odpowiedz”…

Nie, nie chodzi o zamianę typów.

Cześć! W tym zadaniu możesz mieć problem nawet wtedy kiedy zmienisz wszystko na typ long. W zadaniu zapisane jest że liczby a i b są z przedziału od 1 do 1000
wiec dla pewnych danych mogą wynik potęgowania może przekraczać wartość jaką może przechować typ long. Też robiłem to zadanie na javie (zaliczone) lecz ja zrobiłem to za pomocą
potęgowania modularnego. Tak w skrócie to pozwala ono wyznaczyć resztę z dzielenia dla liczby podniesionej do pewnej potęgi bez potrzeby potęgowania tej liczby.
Poszukaj po internecie.

Można jeszcze prościej. W głównym wątku do tego zadania są wskazówki jak to zrobić: 499. Czy umiesz potęgować [PA05_POT]

Można jeszcze prościej. W głównym wątku do tego zadania są wskazówki jak to zrobić: 499. Czy umiesz potęgować [PA05_POT]

Przejrzałem wątek i faktycznie można to zrobić lepiej. Dzięki :slight_smile:

Już wszystko zrozumiałem… dla dużych liczb ostatnia cyfra się powtarza,… a ja usilnie próbowałem liczyć duże liczby… już zrobione :slight_smile: . Dziękuję za pomoc :slight_smile: