Zadanie ze spoja - potęgowanie

0

Witam. Wywala mi niestety błąd o treści "błąd wykonania (NZEC)"
Oto kod do zadania:

#include <iostream>
#include <cmath>
using namespace std;

int GetLastNumber(int num)
{
    return num>=10? num % 10 : num;
}

int main()
{
    int podstawa, wykladnik, proby;
    cin >> proby;

    while(proby)
    {
        cin >> podstawa >> wykladnik;
        if(GetLastNumber(podstawa) == 0) return 0;
        if(GetLastNumber(podstawa) == 1 || wykladnik == 0) return 1;
        if(wykladnik == 1) return podstawa;

        int koncowka = pow(static_cast<double>(GetLastNumber(podstawa)),
                           static_cast<double>(GetLastNumber(wykladnik)));
        cout << GetLastNumber(koncowka) << "\n";
        proby--;
    }

    cin.sync();
    cin.get();
    return 0;
}
 

A oto link do zadania: http://pl.spoj.com/problems/PA05_POT/
W czym tkwi problem ? ;\

0

no ja pierpapier. Myślałem, że algorytm jest dobry ;
Czy muszę zmienić całkiem algorytm, żeby program się szybciej wykonywał czy da się jakoś łatwo edytować ?

o kurde, widzę chyba błąd, są to 'returny' z wcześniejszych testowań algorytmu. Editne, wrzuce i dam znać

0

Po kiego badać czy jest zerem jeżeli ci wyraźnie powiedziano że będą >=1 ?

0

Ale przecież ten algortym nijak się ma do zadania o_O
Masz na przykład wejście
2 50
a u ciebie wynikiem będzie 2^0 czyli 1

0

poczytaj co napisał winterfresh, ale radzę ci usiądź przy kartce wykonaj kolejne potęgowania dla wszystkich możliwych cyfr, a okaże się że jet to jeszcze prostsze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1