Cześć, uczę się do poprawki z algorytmów i nie mogę sobie poradzić z bitowym palindromem. Moim zadaniem jest napisanie programu, który najpierw wczytuje liczbę podaną przez użytkownika, zamienia ją na system binarny, a następnie sprawdza, czy jest ona palindromem, czy nie. Jeżeli jest, wyświetla 1, jeżeli nie, to 0.
W moim programie zamiast liczby binarnej wyświetlane są znaki zapytania. Rozumiem, że chodzi o zły typ zmiennej, ale żeby uzyskać wszystkie 32 bity liczby binarnej do głowy przychodzi mi tylko tabela typu string :/
Poniżej kod który napisałem. Dzięki za pomoc :)
#include <cstdlib>
#include <iostream>
using namespace std;
void checker(int a)
{
int checker = 0;
int i=0, k = 31;
string tab[32];
while(a)
{
tab[i++]=a%2;
a/=2;
}
for(int j=i-1;j>=0;j--)
{
cout << tab[j];
}
while(i<k)
{
if(tab[i] == tab[k])
{
checker++;
i++;
k--;
}
else
{
break;
}
}
if(checker == 32)
{
cout << "1" << endl;
}
else
{
cout << "0" << endl;
}
}
int main()
{
int a;
cout << "Type in the number";
cin >> a;
checker(a);
cout << endl;
system("pause");
return 0;
}