41 / 73
Aug 2018

@tmarcin2
Ale… co tu się w ogóle wyprawia? Co Ty wyświetlasz? Widziałeś wynik dla przykładowego wejścia? Jakieś zera, jakieś spacje. Popraw to przede wszystkim:

https://ideone.com/nSeh704

(chyba, że to celowe w ramach testów)

for(int j=2 ; j<=ilosc ; j++)
{
    k*=10;
}
cout<<k<<endl;

powyżej zastosowałeś logarytm czyli coś bardziej skomplikowanego od potęgi, a potęgę liczysz na piechotę.

Nie zmienia to faktu, że jak dla mnie Twój cel jest osiągnięty - to znaczy 123 odwraca w 321:

https://ideone.com/CGDw4c5

No tak w Ideone działa, a Code Block dla 123 pokazuje 320. Dlaczego ?

Nie wiem i w celach rozwiązania zadania nie jest to istotne. W prawdzie można sobie programować u siebie w codeblocks, ale w celach zaliczenia zadania na spoju program powinien poprawnie działać na ideone. Załóżmy, że CB ma jakiś błąd, tak po prostu, to też program, lub używa błędnego kompilatora - nie rozwiążesz już żadnego zadania?

W celach odpowiedzi co jest nie tak z programem w CB podczas gdy jest poprawny (działa na ideone) należałoby się skontaktować na forum CB.

Ale taka jedna uwaga, która może pomóc:
skoro piszesz w C++ to używaj bibliotek z C++, a nie C bo to może mieć znaczenie. Zatem nie math.h tylko cmath i nie stdlib.h tylko cstdlib. Spróbuj… może coś pomoże.

Z bibliotekami nie pomogło, ale w ideone jest na zielono - czyli jest dobrze. Dziękuję za pomoc. Pozdrawiam.

11 days later

Witam,

napisałem taki oto kod do zadania z tego tematu.

" https://ideone.com/6rkpWE9 "

Przy zgłaszaniu pojawia sie komunikat “błędna odpowiedź”. Sprawdziłem wyniki dla wszystkich liczb N z przedziału <1,80> i są poprawne.

Będę wdzięczny za podpowiedź jak poprawić kod by został zaakceptowany.

Pozdrawiam

Edit:
Ok już zlalazłem przyczyne.

Tego też nie akceptuje a wydaje sie działać. Ktoś wie może czemu??

indent preformatted text by 4 spaces
#include
#include
#include

using namespace std;

int liczba,ii;

int odwracanie_liczby(int liczba)
{
string lancuch;
stringstream ss;
ss << liczba;
lancuch=ss.str();

int dlugosc;
dlugosc=lancuch.length();

string odwrocony_lancuch;
for(int i=dlugosc-1; i>=0; i--)
{
    odwrocony_lancuch+=lancuch[i];
}

int odwrocony_int;
odwrocony_int=atoi(odwrocony_lancuch.c_str());

return odwrocony_int;

}

bool czy_pala(int test)
{

string lancuch;
stringstream ss;
ss << test;
lancuch=ss.str();
int dlugosc;
dlugosc=lancuch.length();

for(int i=0; i<=dlugosc-1; i++)
{
    if(lancuch[i]!=lancuch[dlugosc-1-i])
        return false;

    if(dlugosc-(i*2)<=1)
        break;
}

return true;

}

int main()
{
int ile_razy;
cin >> ile_razy;

for(int i=0; i<ile_razy; i++)
{
    cin >> liczba;

    if(liczba>9)
    {
        ii=1;
        for(;;)
        {
            liczba=liczba+odwracanie_liczby(liczba);

            if(czy_pala(liczba)==true)
                break;
            ii++;

        }
        cout << liczba << " " << ii << endl;
    }

    else
        cout << liczba << " 0" << endl;
}
return 0;

}

20 days later

Witam, mam problem z tym zadaniem. Dla przykładowych danych program działa. Zdaję sobie sprawę z tego, że nie jest on optymalny, ale zastanawia mnie dlaczego sędzia uznaje odpowiedź za błędną. https://ideone.com/43M8yh9 Z góry dziękuję za odpowiedzi.

Faktycznie, dla większości przypadków działa. Ale nie dla

2
10
11

Rzeczywiście! Dziękuję bardzo za ten przypadek. Zorientowałem się dzięki temu, że program nie działał, gdy następną liczbą wprowadzaną do programu jest liczba, którą przed chwilą program podawał jako palindrom, ponieważ nie czyściłem zawartości jednego stringa. Zmieniłem to i już zaakceptowało :smiley:

1 month later

witam,
podpinam się pod ostatni post w temacie.
jedna z funkcji w programie ma odwracać kolejność cyfr.
podczas sprawdzania moja wypisuje cyfra po cyfrze, ale już nie wypisuje stringa jako calosci. czy mozecie luknąć? jest poza zakresem???


(oczywiscie w ideonie kod jest podany tylko jako forma odniesienia)
Edyta podpowiada: zrób najpierw zadanie: Tablice.
Proszę mi już nie odpowiadać. dz.

1 month later

Funkcje itoa i strrev nie są w standardzie języka C (czyli część kompilatorów może je zawierać, a część nie). Dlatego otrzymujesz błąd kompilacji. Zamiast nich możesz użyć w pierwszym wypadku funkcji sprintf (wygoogluj sobie), w drugim musisz napisać własną funkcję.

15 days later

Dzięki za rady, napisałem własną funkcje odwracająca elementy, zamiast atoi i itoa uzylem sprintf i sscanf ale niestety nie pomoglo.
Ideone tez zwraca sukces https://ideone.com/cssAKc9
Prosze o jakas inna podpowiedz :wink: z góry dzieki!

Twój kod nie przechodzi dla testu:
2
10
11

Nie potrzebujesz też ifa który sprawdza czy ile_testow mieści sie w podanym zakresie. Zakres jest podany w treści zadania tylko po to aby dać pojecie o wielkości danych wejściowych i dobrać odpowiedni typ zmiennej. Pomijając tego ifa to usunięcie dokładnie jednej linijki z Twojego kodu pozwoliło otrzymać AC.

E tam, taki sukces. Tylko tyle, że się poprawnie kompiluje i dla pustego wejścia, nic nie zwraca. Może przetestój taki:

    int main(){
    }

i zobacz, czy [też] będzie sukces, czy nie? [na ideone]

9 months later

Witam

Wskazówka: funkcja palindrom powinna przed porównaniem dwóch połówek liczby obrócić kolejność znaków w jednej z połówek.

Poboczna uwaga: Nie znam się na python-ie, ale czy nie jest to dziwne, że x jest na zmianę int-em i str-ingiem.