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

spoj nie chce zaakceptować zadania

0 głosów
432 wizyt
pytanie zadane 25 kwietnia 2020 w C i C++ przez mareczek Nowicjusz (170 p.)
#include <iostream>
#include <math.h>

int main()
{
    int a=0, b=0, d=0;
    std::cin >> d;
    int* tab = new int[d];
    for (int i = 0; i < d; i++)
    {
        std::cin >> a >> b;
        int c = pow(a, b);
        tab[i] = c % 10;
    }
    for (int i = 0; i < d; i++)
    {
        std::cout << tab[i] << "\n";
    }
}

https://pl.spoj.com/problems/PA05_POT/ chodzi o to zadanie, spoj wyrzuca, że błędna odpowiedź chociaż działa frown

2 odpowiedzi

+1 głos
odpowiedź 26 kwietnia 2020 przez Noseczek12 Użytkownik (550 p.)
wybrane 26 kwietnia 2020 przez mareczek
 
Najlepsza
Cześć :)

Zgodzę się z moim poprzednikiem co do typu danych, przydałby się przynajmniej long int aby program mógł przetworzyć tak dużą liczbę  (wspomniane 1 ≤ a,b ≤ 1 000 000 000).

A jeśli to nie z tym spoj ma problem to myślę, że powinieneś zmienić funkcję pow na jakąś inną. Dlaczego ? Ponieważ pow zwraca zmienną typu double i spoj może to uznać za błąd.

Proponuję zrobić potęgowanie jako funkcję rekurencyjną :) myślę, że uda ci sie coś znaleźć w wyszukiwarce (albo w filmie nt rekurencji od M.Zelenta).

Pozdrawiam
Tomek
komentarz 26 kwietnia 2020 przez Whistleroosh Maniak (57,400 p.)
Oj z tym rekurencyjnym potegowaniem to trochę kiepski pomysł. Przekroczyłoby limit czasowy. Chyba że masz na myśli szybkie potegowanie, które działa w O(logn). Ale w tym zadaniu wydaje mi sie, że nie trzeba tych liczb potęgować i istnieje prostsze rozwiązanie
komentarz 26 kwietnia 2020 przez mareczek Nowicjusz (170 p.)
Jakie np ?
komentarz 26 kwietnia 2020 przez creend Gaduła (4,700 p.)
0 głosów
odpowiedź 25 kwietnia 2020 przez creend Gaduła (4,700 p.)
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). Gdy wystąpi przypadek gdzie a będzie równe np. 1 000 000 000 i b

1 000 000 000 to w zmiennej c będzie niesamowicie wysoka liczba, której nie da się przypisać do zmiennej .

Podobne pytania

0 głosów
2 odpowiedzi 442 wizyt
pytanie zadane 28 grudnia 2015 w C i C++ przez Porky Obywatel (1,190 p.)
0 głosów
1 odpowiedź 918 wizyt
–3 głosów
2 odpowiedzi 1,930 wizyt
pytanie zadane 21 lutego 2016 w SPOJ przez Miki Bywalec (2,480 p.)

93,743 zapytań

142,683 odpowiedzi

323,302 komentarzy

63,330 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...