219 / 237
May 2020

@pawoj20 dzięki za pomoc :). Naprawiłem ten błąd i SPOJ zaliczył zadanie.
@korkirw tak wiem ale jeszcze ogarniam ten temat: Uczę się C++ dopiero około 1,5 tygodnia.

3 months later

zdecydowanie, dużo mi pomogłeś, nie mogłem trafić na tę ścieżkę rozumowania. Ale udało mi się. Dziękuje.

27 days later
21 days later

Witam.
Napisałem kodzik, testuje wiele liczb i wszystko wychodzi mi poprawnie. Wrzucam do SPOJa to wyskakuje mi "błędna odpowiedź"
KOD: https://ideone.com/STeUIx14
Przeczytałem powyżej kilka różnych problemów ale w żadnym nie ujrzałem tego co mogło by mi pomóc.
Swoją drogą zauważyłem, że moje rozwiązanie na tle innych jest nietypowe.
Będę wdzięczny za znalezienie błędu.

Moim zdaniem niedużo już brakuje do zaliczenia.(dwie dodatkowe linijki lub zmiana jednej :thinking: )
Oto test pokazujący problem:
Wejście
9
987654325 4
87654325 4
7654325 4
654325 4
54325 4
4325 4
325 4
25 4
5 4
prawidłowe wyjście
5
5
5
5
5
5
5
5
5

byłem zdziwiony, że taką długą liczbę podałeś bo byłem pewien że jest podany zakres w zadaniu jest do 1 000 000. Źle odczytałem bo było do 1 000 000 000
Dzięki wielkie :stuck_out_tongue:

5 months later

Hej, napisałem kod który wrzucam poniżej. Logicznie wszystko jest poprawnie, zrobiłem setki testów i zawsze dostaje dobrą odpowiedź, niestety sędzia na SPOJu mi nie zalicza odpowiedz. Ktoś powie co jest nie tak?
`
Kod już działa:)

Ok, dzięki za odpowiedź, zaraz przeczytam to co poleciłeś a potem skasuje kod. O co chodzi z tym formatem wyjścia? Pytam, bo jestem zupełnie początkującym. Czy chodzi o to, że kod powinien być napisany tak, że użytkownik najpierw podaje wszystkie swoje liczby, a dopiero potem wyświetlane są wyniki?

Tak jest dobrze, (nie trzeba zapamietywac calosci), tylko brakuje jednego znaku oddzielajacego poszczegolne wyniki. Domyslam sie ze testujesz program w konsoli i nie widac tam ze wynikiem dzialania programu jest ciag cyfr.

2 months later

Cześć, zamieszczam kod który działa mi bez zarzutu gdy go otworze, a jednak na spoju wyskakuje błędne rozwiązanie lub błąd kompilacji. Wie ktoś może gdzie jest błąd?

#include
#include
#include
using namespace std;
int main()
{
int t, i,j,a,b;
//double a, b;
cin >> t;
for (i = 0; i < t; i++)
{
cin >> a >> b;
int p = pow(a, b);
string s = to_string§;
for (j = 0; j <= s.length(); j++)
{
char x = s[j];
if (j == s.length()-1)
{
cout << x << endl;
}
}
}
return 0;
}

Na pewno błędne są include bez zawartości w nawiasach ostrych. string s = to_string§; też nie ma prawa działać ze względu na § oraz fakt, że nie m nigdzie zmiennej to_string.

Jeśli ta odpowiedź nie pomogła to może wstaw prawidłowy i sformatowany kod (choćby jako link do Ideone)?

To błędy przy wklejaniu załączam link do ideone:

Pytanie, jaką odpowiedź wygeneruje Twój program dla takich danych wejściowych:
1
10 10

Faktycznie wyszedł błędny wynik, więc zmieniłem zmienną na long long int i działa, ale sędzia dalej nie zalicza mi tego rozwiązania.

Jest duże prawdopodobieństwo, że typ “long long int” jest za mały, aby wygenerowac dobry wynik dla takiego czegoś:
1
100 100
Przeczytaj treść zadania, tam jest wyraźnie podane, jakie mogą być wartości a i b.

Czyli po prostu robię to złą metodą? Bo chyba nie ma zmiennej która pomieści takie liczby.

Tak, trzeba inna metodą. W tym temacie były wskazówki co można zrobić.
Trzeba zauważyć 2 rzeczy przy potęgowaniu dla rozwiązania tego zadania.