Вопрос задан 22.02.2019 в 02:28. Предмет Информатика. Спрашивает Садриев Инсаф.

С клавиатуры вводится некоторое целое десятичное число. Вычислить сколько единиц и нулей содержится

в двоичной записи этого числа. Для решения необходимо вспомнить алгоритм перевода десятичных чисел в двоичную систему счисления. c++
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Антонова Анастасия.
#include <iostream>
#include <cstdlib>
#include <locale>
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include <cmath>
using namespace std;

void func(int num);
inline void reverse(int c[1]);
void str(int num);
int n2[1];

int main(int argc, char *argv[])
{
system("chcp 1251 >nul");
setlocale(LC_ALL, "Russian");

char num[10]; int cc;
printf("Введите число и его сс: ");
cin >> num >> cc;

char *pInt;
int hh = strtol(num, &pInt, cc);

func(hh);

return EXIT_SUCCESS;
}

void func(int num)
{
int c = 2;
int i = 0, j = 10;
int nn = num;
int pr = 0;

for(; j > i; j--){
pr = nn % c;
n2[j] = pr;
nn /= c;
}reverse(n2);
}

inline void reverse(int c[1]){
int len = 11;
int j = len-1;
for (int i = 0; i < len; i++){};
int ber;
for(int i = 0; i < len; i++) ber += c[i] * pow(10, j), j--;
str(ber);
}

void str(int num)
{
int ber = num;
int c = 10;
char buffer[20];
char *nm;
nm = itoa(ber, buffer, c);
string aa = nm;
for(int i = 0; i < strlen(nm); i++){
if(nm[i] == 0 and nm[i] != nm[i+1])
for(int j = i;j;j--) aa.erase(aa.begin() + i);
}
int ed = 0, nu = 0;
for(int i = 0; i < strlen(aa.c_str()); i++){
if(aa[i] == '1') ed++;
else nu++;
}
cout << "Двоичная запись: " << aa << endl;
printf("Количество единиц: %d\n Количество нулей: %d", ed, nu);
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи, необходимо перевести введенное целое десятичное число в двоичную систему счисления и посчитать количество единиц и нулей в его двоичной записи.

Алгоритм перевода десятичных чисел в двоичную систему счисления:

1. Инициализируем переменную `num` со значением введенного десятичного числа. 2. Инициализируем переменную `binary` со значением пустой строки. 3. Пока `num` больше 0: - Вычисляем остаток от деления `num` на 2 и присваиваем его переменной `remainder`. - Добавляем `remainder` в начало строки `binary`. - Делаем целочисленное деление `num` на 2 и присваиваем результат переменной `num`. 4. Выводим значение переменной `binary`.

Подсчет количества единиц и нулей:

1. Инициализируем переменные `count_ones` и `count_zeros` со значением 0. 2. Для каждого символа `bit` в строке `binary`: - Если `bit` равен '1', увеличиваем значение переменной `count_ones` на 1. - Если `bit` равен '0', увеличиваем значение переменной `count_zeros` на 1.

Теперь, давайте реализуем данный алгоритм на языке C++:

```cpp #include #include

int main() { int num; std::cout << "Введите целое десятичное число: "; std::cin >> num;

std::string binary = ""; while (num > 0) { int remainder = num % 2; binary = std::to_string(remainder) + binary; num /= 2; }

int count_ones = 0; int count_zeros = 0; for (char bit : binary) { if (bit == '1') { count_ones++; } else if (bit == '0') { count_zeros++; } }

std::cout << "Количество единиц: " << count_ones << std::endl; std::cout << "Количество нулей: " << count_zeros << std::endl;

return 0; } ```

Примечание: Данный код принимает ввод от пользователя и выводит количество единиц и нулей в двоичной записи введенного числа.

Пожалуйста, обратите внимание, что данный код является примером и может быть доработан или оптимизирован в зависимости от конкретных требований и контекста вашей задачи.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос