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

question-closed Rodzaj palindroma w C++

Aruba Cloud - Virtual Private Server VPS
0 głosów
197 wizyt
pytanie zadane 9 grudnia 2024 w C i C++ przez Jerzy Użytkownik (950 p.)
zamknięte 9 grudnia 2024 przez adrian17
Co to jest fufsopalindromem. ?
komentarz zamknięcia: nie rozumie czym jest "samodzielny konkurs"

1 odpowiedź

0 głosów
odpowiedź 9 grudnia 2024 przez adrian17 Mentor (352,580 p.)
...nazwa zadania z uruchomionego wczoraj konkursu?

https://szkopul.edu.pl/c/mistrz-programowania-2025/p/
komentarz 9 grudnia 2024 przez Jerzy Użytkownik (950 p.)
Napisałem program i wyskakuje błąd że Oczekuje TAK a pojawia się NIE
 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    int i,n,N,cyfra,dlugosc;
    bool palindrom=true;
    vector <int> slowo;
    cin>>n;
    if(n<1 || n>1000)
    {
        cout<<"NIE"<<endl;
    return 0;
    }

    for(i=0;i<n;i++)
    {
        cin>>cyfra;
        slowo.push_back(cyfra);

    }

     N=slowo.size();
    dlugosc=N/2;

    for(i=0;i<dlugosc;i++)
    {
        if(slowo[i]!=slowo[N-1-i])
        {
            palindrom=false;
            break;

        }
    }

    if(palindrom)
    {
        cout<<"TAK";
    }
    else
    {
        cout<<"NIE";
    }
    return 0;
}
komentarz 9 grudnia 2024 przez adrian17 Mentor (352,580 p.)
Po pierwsze, to ma być robione samodzielnie.

Po drugie, poczytaj jeszcze treść zadania kilka razy.

Po trzecie, ten kod nawet wejścia nie wczytuje poprawnie, wpisuję "2<nowa linia>22" jak w treści i mi nic nie wypisuje. Odpalałeś go w ogóle, czy wkleiłeś prosto na stronę?
komentarz 9 grudnia 2024 przez Jerzy Użytkownik (950 p.)
Odpala ten program   i dostałem 5 punktów  .
Gdzieś jest błąd bo odczytuje na odwót . Program uważa za palindrom a nie jest
Mam nowszy z lustrzanym odbiciem :
 

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int main() {
    int n, cyfra;
    vector<int> liczba;
    unordered_map<int, int> mirror_map = {
        {1, 1}, {6, 9}, {8, 8}, {9, 6}
    };

    // Wczytaj długość liczby
    cin >> n;

    // Sprawdź zakres n
    if (n < 1 || n > 1000) {
        cout << "NIE" << endl;
        return 0;
    }

    // Wczytaj cyfry liczby
    for (int i = 0; i < n; i++) {
        cin >> cyfra;

        // Sprawdź, czy cyfra ma "lustro"
        if (mirror_map.find(cyfra) == mirror_map.end()) {
            cout << "TAK" << endl;
            return 0;
        }

        liczba.push_back(cyfra);
    }

    // Sprawdź, czy liczba jest fufsopalindromem
    for (int i = 0; i < n / 2; i++) {
        if (mirror_map[liczba[i]] != liczba[n - 1 - i]) {
            cout << "NIE" << endl;
            return 0;
        }
    }

    // Jeśli wszystko przeszło, liczba jest fufsopalindromem
    cout << "TAK" << endl;
    return 0;
}
komentarz 10 grudnia 2024 przez TOWaD Mądrala (6,420 p.)
edycja 11 grudnia 2024 przez TOWaD
Edit: Dobra usunięty, jak zbędne/nie na temat. To parę znaków na serwerze mniej.
komentarz 10 grudnia 2024 przez adrian17 Mentor (352,580 p.)

Nie wiem czemu akurat o tym wspominasz, ten kod nie opierał się na posortowaniu unordered_map... no i zdecydowana większość programów używających hashmapy nie opiera się na tym. To nie był błąd w kodzie. Efektywnie wrzuciłeś trivię nie na temat, a ta customowa HashMap jest... dziwna pod wieloma względami i raczej nikomu bym nie radził uczyć się z tego kodu.

Kod wygenerowany automatycznie

Tym bardziej. Nie rób proszę takich losowych komentarzy.

komentarz 18 grudnia 2024 przez TOWaD Mądrala (6,420 p.)

@Jerzy, skoro straciłem tyle czasu na to pytanie to odpowiem. (ale ja bym tak tego nie napisał).

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int main() {
    int n, cyfra;
    vector<int> liczba;
    // unordered_map<int, int> mirror_map = {
    //     {1, 1}, {6, 9}, {8, 8}, {9, 6}

    // }; to co to robi ? Lepiej tak:
    const string zakazane_numery = "3....";

    // Wczytaj długość liczby
    cin >> n; 

    // Sprawdź zakres n -  Ale po co?
    // if (n < 1 || n > 1000) {
    //     cout << "NIE" << endl;
    //     return 0;
    // }

    // Wczytaj cyfry liczby
    cin.ignore();// z igroruj enter;
    for (int i = 0; i < n; i++) {
        // cin >> cyfra; wczytuje całą linię 22222 
        cyfra=cin.get();

        // Sprawdź, czy cyfra ma "lustro"
        if (zakazane_numery.find(static_cast<char>(cyfra)) !=std::string::npos){
         //   cout << "TAK" << endl;
            cout << "NIE" << endl;
            return 0;
        }

        liczba.push_back(cyfra);
        cout<<"dodano"<<endl;
    }
    // if(/*cos rówa się zero to*/) { cout << "NIE" << endl;
    //         return 0;}

    // Sprawdź, czy liczba jest palindromem
    for (int i = 0; i < n / 2; i++) {
       // if (mirror_map[liczba[i]] != liczba[n - 1 - i]) 
       if(liczba[i] != liczba[n - 1 - i]) // chyba to miałeś na myśli
        {
            cout << "NIE" << endl;
            return 0;
        }
    }

    // Jeśli wszystko przeszło, liczba jest fufsopalindromem
    cout << "TAK" << endl;
    return 0;
}

tak na maginesie

1)

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int main() {
    int n, cyfra;
    vector<int> liczba;
    unordered_map<int, int> mirror_map = {
        {1, 1}, {6, 9}, {8, 8}, {9, 6}
    };
    unordered_map<int, int> pusta_mapa;
    string pusty_string;
cout<<sizeof(n)<<endl;
cout<<sizeof(pusty_string)<<endl;
cout<<sizeof(cyfra)<<endl;
cout<<sizeof(liczba)<<endl;
cout<<sizeof(mirror_map)<<endl;
cout<<sizeof(pusta_mapa)<<endl;
cout<<sizeof(cin)<<endl;
cout<<sizeof(cout)<<endl;
 
    return 0;
}

2) cin.get()

a i w ogóle nie wiem czy działa, bo nie można sprawdzić konkretnego zadania

Podobne pytania

0 głosów
0 odpowiedzi 517 wizyt
0 głosów
0 odpowiedzi 137 wizyt
pytanie zadane 6 czerwca 2016 w C i C++ przez Macek Kolo Mądrala (5,480 p.)
0 głosów
1 odpowiedź 186 wizyt

93,329 zapytań

142,323 odpowiedzi

322,397 komentarzy

62,659 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...