• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

"Zabawne dodawanie Piotrusia"-SPOJ Błąd Wykonania

Object Storage Arubacloud
0 głosów
532 wizyt
pytanie zadane 20 lipca 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)

Cześć, ma problem z zadaniem ze spoja(https://pl.spoj.com/problems/BFN1/). Napisałem program który u mnie działa jak należy, ale spoj odrzuca mi go. Wie ktoś o co chodzi? Mój kod:

#include <iostream>
#include <cstdlib>
#include <sstream>
using namespace std;
int ilosc, liczba; int ile,k;
int convert_to_string(int liczba)    //  zamienia na string, odwraca i konwertuje na int
{
    string tekst;
    ostringstream ss;
    ss << liczba;
    tekst = ss.str();
    ss.clear();
    ss.str(string());
    string wynik;
    for(int i = 0; i < tekst.length(); i++)
    wynik.insert(0, tekst.substr(i, 1));
    string str=wynik;
    int i = atoi(str.c_str());
    return i;
}
string test_palindromu(int a, int b)
{
    ile=0;
   b=convert_to_string(b);
   while(a!=b)
  {

      ile++;
      a=a+b;
      b=a;
      b=convert_to_string(b);
  }
  cout<<a<<" "<<ile<<endl;
}

int main()
{

    cin >> ilosc;
    for(int i = 0; i < ilosc; i++)
    {
        cin >> liczba;
        int p=liczba;
        test_palindromu(liczba,p);

    }
}

 

komentarz 20 lipca 2018 przez RafalS VIP (122,820 p.)
Z jakiego powodu odrzuca? Błędny wynik? Błąd kompilacji? Przekroczono czas oczekiwania?

1 odpowiedź

+1 głos
odpowiedź 20 lipca 2018 przez RafalS VIP (122,820 p.)
wybrane 20 lipca 2018 przez Piotr Błaszczak
 
Najlepsza

Dziwne, że Twój kompilator Ci to przepuszczał, bo:

string test_palindromu(int a, int b)

ta funkcja nic nie zwraca mimo, że deklaruje zwrócenie stringa. Zmień na void i zadziała. 

A tak poza tym to strasznie to przekombinowałeś funkcje conver_to_string, która tak  na marginesie ma dziwną nazwe, bo ma konwertować inta na stringa a zwraca int :D

int convert_to_string(int liczba)    //  zamienia na string, odwraca i konwertuje na int
{
	//string tekst;
	//ostringstream ss;
	//ss << liczba;
	//tekst = ss.str();
	string tekst = std::to_string(liczba);
	//ss.clear();
	//ss.str(string());
	//string wynik;
	//for (int i = 0; i < tekst.length(); i++)
	//	wynik.insert(0, tekst.substr(i, 1));
	//string str = wynik;
	std::reverse(tekst.begin(), tekst.end());
	return atoi(tekst.c_str());
}

 

komentarz 20 lipca 2018 przez Piotr Błaszczak Bywalec (2,890 p.)

Zrobiłem tak jak pokazałeś i zmieniłem ciało funkcji convert_to_string, ale program nie wie co to jest to_string, zapomniałem o jakiejś bibliotece?

#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;

int convert_to_string(int liczba)
{

  string tekst = to_string(liczba);
    reverse(tekst.begin(), tekst.end());
return atoi(tekst.c_str());
}

 

komentarz 20 lipca 2018 przez RafalS VIP (122,820 p.)
#include <string>

jak nie pomoże to prawdopodobnie używasz mingw GCC 4.8.0, na którym to nie działa.

komentarz 20 lipca 2018 przez Piotr Błaszczak Bywalec (2,890 p.)
używam mingw32-g++.exe i nie działa :( Ale SPOJ przyjmuje :)
komentarz 20 lipca 2018 przez RafalS VIP (122,820 p.)

No to zostaje Ci stary sposób ze stringstream, ale zrób to ładniej:

int a = 10;
stringstream ss;
ss << a;
string str = ss.str();

 

Podobne pytania

0 głosów
0 odpowiedzi 478 wizyt
pytanie zadane 10 września 2017 w SPOJ przez Józef Niecierski Początkujący (440 p.)
0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 14 października 2017 w SPOJ przez michal12334 Obywatel (1,510 p.)
0 głosów
1 odpowiedź 261 wizyt
pytanie zadane 23 sierpnia 2017 w SPOJ przez seba Dyskutant (8,900 p.)

92,567 zapytań

141,420 odpowiedzi

319,616 komentarzy

61,953 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...