221 / 237
Oct 2020

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.

1 year later

Witam programistów. Mógłby ktoś rzucić okiem na ten kod? Wydaje mi się, że jest dość optymalnie napisany, a cały czas wyskakuje błąd z przekroczeniem limitu czasu. Dopiero raczkuje w tej dziedzinie i bardzo cenie sobie rady bardziej doświadczonych osób. Z góry dzięki, pozdrawiam.

(1 ≤ a,b ≤ 1 000 000 000). naprawdę chcesz robić 1000000000^1000000000 ? ZAdanie polega na wyznaczeniu ostatniej cyfry a nie całej liczby… W wątku są wskazówki… Pisadło i karka też są przydatne :wink:

3 months later
#include <iostream>
#include <cmath>
using namespace std;
int loop;
double a[10],b[10];
long long int odp[10];
int main()
{
    cin>>loop;
    if(loop==0) return 0;
    for(int i=0; i<loop; i++)
    {
    cin>>a[i]>>b[i];
    odp[i] = pow(a[i],b[i]);
    }

    for(int i=0; i<loop; i++)
{
    cout<<odp[i]%10<<"\n";
}
return 0;
}

mam coś takiego ale nie wiem czego brakuje/co jest źle