С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
1

Рассчитать симметрические двоичные числа

29.11.2019, 19:24. Показов 758. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача состоит в том, чтобы создать программу, которая рассчитывает симметрические двоичные числа.
Ввод программы представляет собой последовательность поисковых команд. Ввод завершается при достижении конца ввода (EOF). Каждая команда состоит из 3 данных X, LO, HI. Первый символ указывает, хотим ли мы перечислить все найденные симметрические двоичные числа ( будет введён символ l - list) или мы хотим только прочитать их (символ c - cont), затем следуют нижний(LO) и верхний(Hl) пределы искомого интервала.
Единственное что я могу это перевести число в двоичный вид что дальше не понимаю(

Добавлено через 2 минуты
Вот пример который мне не о чом не говорит
Ввод:

l 0 20
c 0 20
l 1019 2019

Вывод:

Intervals:
0 = 0b
1 = 1b
3 = 11b
5 = 101b
7 = 111b
9 = 1001b
15 = 1111b
17 = 10001b
Total: 8
1023 = 1111111111b
1025 = 10000000001b
1057 = 10000100001b
1105 = 10001010001b
1137 = 10001110001b
1161 = 10010001001b
1193 = 10010101001b
1241 = 10011011001b
1273 = 10011111001b
1285 = 10100000101b
1317 = 10100100101b
1365 = 10101010101b
1397 = 10101110101b
1421 = 10110001101b
1453 = 10110101101b
1501 = 10111011101b
1533 = 10111111101b
1539 = 11000000011b
1571 = 11000100011b
1619 = 11001010011b
1651 = 11001110011b
1675 = 11010001011b
1707 = 11010101011b
1755 = 11011011011b
1787 = 11011111011b
1799 = 11100000111b
1831 = 11100100111b
1879 = 11101010111b
1911 = 11101110111b
1935 = 11110001111b
1967 = 11110101111b
2015 = 11111011111b
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2019, 19:24
Ответы с готовыми решениями:

Двоичные числа на С++
Доброго времени суток. Восьмеричные числа на С++ вроде представляются с префиксом 0, т.е. 0124...

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

Определить двоичные числа из промежутка [a,b], сумма цифр которых - простое число
Условие: Определить все двоичные числа, принадлежат промежутку , сумма цифр которых есть простые...

Как представлять двоичные числа в обратном и дополнительном коде, используя битовые операции?
#include <iostream> #include <string> #include <algorithm> using namespace std; int main()...

2
Диссидент
Эксперт C
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
29.11.2019, 19:42 2
vfhbf, конечно, можно перебирать все числа из интервала и проверять их двоичное представление на палиндромность (симметричность). Но ясно, что бОльшая часть перебора будет "впустую" и хотелось бы найти более эффективный и интересный алгоритм.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
29.11.2019, 19:51  [ТС] 3
Байт, Мне хоть бы перебором
вот есть код перевода в двоичный вид, может быть можно его как-то использовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <conio.h>
void BinDec(char* bin, int size)
{
    int rez(0), i;
    std::cout<<"\nДесятичное число:\n< ";
    for(i = size - 1; i >= 0; --i)
        rez += (bin[i] - 48)<<i;
    std::cout<<rez<<std::endl;
}
char* DecBin(int chislo, int size)
{
    int i;
    char* bin = new char[size];
    std::cout<<"Двоичный код:\n< ";
    for(i = size - 1; i >= 0; --i)
    {
        if(!((i + 1) % 8))
            std::cout<<' ';
        std::cout<<(bin[i] = ((chislo>>i)&1) + 48);
    }
    return bin;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    int chislo, size(sizeof(chislo)*8);
    std::cout<<"Введите число:\n> ";
    std::cin>>chislo;
    BinDec(DecBin(chislo, size), size);
    system("pause");
    return EXIT_SUCCESS;
    getch();
}
0
29.11.2019, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2019, 19:51
Помогаю со студенческими работами здесь

Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива
Дано число p - количество знаков в двоичном числе Нужно записать все двоичные числа по порядку ...

В каждом байте длинного целого числа N поменять местами двоичные разряды в зеркальном порядке
В каждом байте длинного целого числа N поменять местами двоичные разряды в зеркальном порядке.

Написать программу, которая считывает текст из файла и выводит на экран строки, содержащие двоичные числа
Помогите пожалуйста написать программу в CodeBlocks: Написать программу, которая считывает текст...

Рассчитать сумму цифр данного целого числа X.
Я знаю что это очень легкая задача, но тем не менее я никак не могу решить. Помогите мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru