Dostaje cały czas Błędną odpowiedź. Ktoś ma pomysł dlaczego?
http://ideone.com/kOZYjM21
Może ktoś mi pomóc, nie mogę znaleźć błędu.
https://ideone.com/qBaajh13
@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:
(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:
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.
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.
LINK20 - może Cie zainteresować, tylko proszę, nie kopiuj 1:1
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;
}
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.