Witam!
Otóż mam takie zadanie, że mam napisać program, który wyświetli liczbę, która ma najwięcej jedynek w postaci binarnej. Póki co napisałem taki kod ale totalnie utknąłem i nie mam pomysłu co mogę zrobić i jak żeby się ruszyć z miejsca. Z góry dziękuję za pomoc :)
Mam jeszcze wpisane inne biblioteki ale to do innego zadania w case 1.
#include <pch.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <stdlib.h>
using namespace std;
string binarka(int n)
{
string a;
while (n != 0) { a = (n % 2 == 0 ? "0" : "1") + a; n /= 2; }
return a;
}
int liczenie(unsigned x)
{
int a = 0;
for (; x != 0; x >>= 1) a += x & 1;
return a;
}
int main()
{
int wybor;
cin >> wybor;
switch (wybor)
{
case 1:
{
}break;
case 2:
{
const int a = 10; // stala zmienna a
int *tab = new int[a];
int max;
for (int i = 0; i < a; i++) // wprowadzanie dodatnich liczb do tablicy
{
do
{
cin >> tab[i];
} while (tab[i] <= 0);
}
cout << endl;
for (int i = 0; i < a; i++) // zamiana liczb w tablicy na liczby binarne oraz zliczanie jedynek
{
cout << binarka(tab[i]);
cout << endl;
cout << liczenie(tab[i]);
cout << endl;
}
max = liczenie(tab[0]); // przypisane wartosci maksymalnej do pierwszego elementu tablicy
for (int i = 0; i < a; i++) // wyznaczanie elementu w tablicy z najwieksza iloscia jedynek
if (max < liczenie(tab[i]))
max = liczenie(tab[i]);
cout << max << endl; // wyswietlenie liczby z tablicy z najwieksza iloscia jedynek
}break;
case 3:
{
}break;
default:
break;
}
return 0;
}