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

SPOJ, błędna odpowiedz, "czy umiesz potęgować?"

Object Storage Arubacloud
0 głosów
177 wizyt
pytanie zadane 31 stycznia 2019 w C i C++ przez Bart3G Nowicjusz (120 p.)
edycja 31 stycznia 2019 przez Bart3G

Witam, czy mógłby mnie ktoś nakierować co tu jest nie tak albo dlaczego na SPOJU wyskakuje mi "błędna odpowiedz". W kompilatorze wydaje się być wszystko dobrze.

#include <iostream>
#include <math.h>

using namespace std;

int a,b,c,D;

int main()
{
    cin>>D;
    while(D>=1 && D<=10)
    {
            cin>>a>>b;
            c=pow(a,b);
            cout<<c%10<<endl;
            D--;
    }
    return 0;
}

 

https://pl.spoj.com/problems/PA05_POT/

2 odpowiedzi

0 głosów
odpowiedź 1 lutego 2019 przez jankustosz1 Nałogowiec (35,880 p.)
edycja 1 lutego 2019 przez jankustosz1
Po pierwsze sprawdź jakie zakres mają zmienne z których korzystasz i jaki największy wynik mogłoby zwrócić pow.

Po drugie skorzystaj z szybkiego potęgowanie za każdym razem robiąc mod 10 (mnożenie jeden element po drugim jest za wolne), ewentualnie możesz wyznaczyć okres ostatniej cyfry i zrobić mod potęgi przez rozmiar okresu i zwrócić odpowiedni element z tablicy okresu.
komentarz 1 lutego 2019 przez niezalogowany
Szybkie potęgowanie wcale nie jest potrzebne do zaliczania tego zadania. Gdzie w tym kodzie jest mnożenie jeden element przez drugi?
komentarz 1 lutego 2019 przez jankustosz1 Nałogowiec (35,880 p.)
a sorki, nie doczytałem że tylko ostatnia cyfra się liczy

jbc pow to jest mnożenie "jeden element po drugim" i jest ogólnie wolne
komentarz 2 lutego 2019 przez niezalogowany
Nie pow to nie jest mnożenie jeden element po drugim. Zazwyczaj jest to kompilowane do kombinacji funkcji exp i ln (lub coś innego w zależności od implementacji), bo trzeba uwzględnić wszystkie możliwe zmiennoprzecinkowe argumenty funkcji.
–1 głos
odpowiedź 31 stycznia 2019 przez Bosswell Nałogowiec (36,470 p.)
To by było zbyt łatwe. Spróbuj dla danych wejściowych a = 1 000 000 00  i b = 9 999 999 9

Podobne pytania

0 głosów
1 odpowiedź 279 wizyt
0 głosów
2 odpowiedzi 370 wizyt
+1 głos
1 odpowiedź 1,965 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...