• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ - Czy potrafisz potęgować?

VPS Starter Arubacloud
0 głosów
395 wizyt
pytanie zadane 20 maja 2017 w SPOJ przez Jedyn Obywatel (1,200 p.)

Witam. Napisałem zadanie z potęgowaniem, wszystko wydaje mi się działać poprawnie. Przeprowadziłem dużo podchwytliwych testów a spoj rzuca mi: błąd wykonania (NZEC).Kompilator Java(HotSpot 8u112)
Kod, oczywiście niepełny: 
 

public static void main(String[] args) throws IOException {
        int a=0;
        int b=0;

        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext())
        {
            a = scanner.nextInt();
            b = scanner.nextInt();
            break;
        }
			 System.out.printf(String.valueOf(pModularne(a,b)));


    }

 

komentarz 20 maja 2017 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Twój kod mi nic nie mówi zbytnio, bo ja nie JAVA, ale wiem że w tym zadaniu większość osób ma problem, że potęgowanie wykracza poza wartości longów, a co dopiero intów ;)
komentarz 21 maja 2017 przez Jedyn Obywatel (1,200 p.)
U mnie nie ma z tym problemu,  dla 100 000 000 i wykladniku 999 999 999 wynikiem jest 1. Z tym, że spoj coś nie chce przyjąć tego programu. Ale już wiem że trzeba to zrobić trochę inaczej :)
komentarz 21 maja 2017 przez vector Dyskutant (9,200 p.)

Rozwiązaniem Twoich problemów jest szybkie potęgowanie modularne.

komentarz 21 maja 2017 przez Jedyn Obywatel (1,200 p.)
I takie właśnie zastosowałam, funkcja pModularne = potegowanie modularne i dalej błąd nzec. Myślę że może być problem z metodą wprowadzania danych jaka zastosowałem
komentarz 21 maja 2017 przez vector Dyskutant (9,200 p.)

Masz rację wejście jest niepoprawnie zrobione. Twoja metoda jest prawie dobra musisz tylko wciągnąć liczbę przypadków testowych i powinno działać.

public static void main (String[] args) throws java.lang.Exception
{
    int a=0;
    int b=0;
    
    Scanner scanner = new Scanner(System.in);
    a = scanner.nextInt();
    while(scanner.hasNext())
    {
        a = scanner.nextInt();
        b = scanner.nextInt();
        System.out.println(String.valueOf(pModularne(a,b)));
    }
}

 

komentarz 21 maja 2017 przez Jedyn Obywatel (1,200 p.)
Właśnie nie wiem jak mam ten program przerobić ,żeby działał. Czytałem jeszcze, że jako input trzeba dać BufferReader'a.
komentarz 21 maja 2017 przez vector Dyskutant (9,200 p.)
Ten kod który wysłałem w komentarzu jest poprawny, sprwadziłem wysyłając na spoja i przechidzi.

1 odpowiedź

+1 głos
odpowiedź 20 maja 2017 przez Muminek Dyskutant (8,650 p.)

Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowia D (1≤D≤10), oznaczjąca liczbę przypadków do rozważenia. Opis każdego przypadku podany jest w jednym wierszu, zawierającym dwie liczby naturalne a i b oddzielone pojedynczym odstępem (spacją), takie, że (1 ≤ a,b ≤ 1 000 000 000).

Czy Twój program jest w stanie takie liczby spotęgować? Przeprowadziłeś za mało podchwytliwych testów.

Popatrz co program ma zrobić:

Wyjście
Dla każdego przypadku z wejścia Twój program powinien wypisać (w osobnej linii dla każdego przypadku z wejścia) cyfrę jedności liczby abzapisanej dziesiętnie.

 

Teraz zadaj sobie ważne pytanie: czy koniecznie muszę wykonać operacje potęgowania?

A potem będzie wszystko działało :)

 

Podobne pytania

0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 10 stycznia 2018 w SPOJ przez niezalogowany
0 głosów
2 odpowiedzi 364 wizyt
0 głosów
2 odpowiedzi 308 wizyt
pytanie zadane 7 lutego 2023 w SPOJ przez Tactykalier Nowicjusz (200 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...