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

c++ palindrom

Konkurs Mistrz Programowania
0 głosów
1,117 wizyt
pytanie zadane 5 kwietnia 2020 w C i C++ przez tomes235 Początkujący (320 p.)
#include <iostream>
using namespace std;
int main()
{
	int value;
	cin >> value;
	unsigned int mask = 0x80000000;
	unsigned int mask1 = 0x00000001;
	for ((mask > 0); ((value xor mask) == 0);) {
		mask >>= 1;
	}
	for ((mask1 = mask); ((value xor mask1) == 0); ) {
		mask1 <<= 1;
	}
	if (mask = mask1) {
			cout << "1";
		}
		else if (mask!=mask1) {
			cout << "0";
		}
	
	}
	

Cześć. Mam do napisania program, który sprawdza czy liczba jest binarnym palindromem. Jeśli jest to wyświetla 1 a jeśli nie to wyświetla 0. Problem w tym, że za każdym razem wyświetla mi "1".  Co mogę tu zmienić?

2 odpowiedzi

0 głosów
odpowiedź 5 kwietnia 2020 przez tkz Nałogowiec (42,040 p.)
bool is_palindrome(unsigned n)
{
    unsigned mask{0};
    for(unsigned tmp{n}; tmp; tmp >>= 1)
    {
        mask = (mask << 1) | (tmp & 1);
    } 
    return mask == n;
}

 

0 głosów
odpowiedź 5 kwietnia 2020 przez tangarr Mędrzec (155,140 p.)
template<typename T>
bool is_palindrome(T value) {
    static_assert(std::is_integral<T>::value, "Function require integral type");
    using UT = typename std::make_unsigned<T>::type;
    UT mask0 = 1;
    UT mask1 = 1;
    mask0 <<= (sizeof(value)*8-1);

    while (mask0 > mask1) {
        bool bit0 = (value & mask0) != 0;
        bool bit1 = (value & mask1) != 0;
        if (bit0 != bit1)
            return false;
        mask0 >>= 1;
        mask1 <<= 1;
    }
    return true;
}

 

komentarz 7 kwietnia 2020 przez tomes235 Początkujący (320 p.)
Wszystko okej, tylko potrzebuję zapisane maski w systemie szesnastkowym.
komentarz 7 kwietnia 2020 przez tangarr Mędrzec (155,140 p.)
1. Wywal szablon.
2. Zmień typ T na taki który cię interesuje.
3. Ustaw maski takie jakie chcesz
4. Pętla while pozostaje bez zmian

Podobne pytania

0 głosów
4 odpowiedzi 1,681 wizyt
pytanie zadane 26 lutego 2018 w C i C++ przez Nitj'Sefni Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 1,235 wizyt
pytanie zadane 29 stycznia 2017 w C i C++ przez Natalia Cierpiał Nowicjusz (120 p.)
+1 głos
1 odpowiedź 696 wizyt
pytanie zadane 26 czerwca 2023 w C i C++ przez Szyszka Gaduła (3,510 p.)

93,656 zapytań

142,577 odpowiedzi

323,100 komentarzy

63,174 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

Kursy INF.02 i INF.03
...