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

Перебор числа в 2ичной системе, используя boolean

24.06.2013, 15:28. Показов 1512. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак, изначально есть массив из boolean,
допустим 000000
Надо произвести перебор, как если бы это было число в 2ичной системе
вот так
000000
000001
000010
000011
000100
000101
....
101111
111111
Как осуществить данный перебор, не переводя наш массив в другие типы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2013, 15:28
Ответы с готовыми решениями:

Строка состоящая из символов 0 и 1 представляет собой число в 2ичной системе счисления.Если сумма цифр 16ичног
Помогите написать, срочно надо, благодарю за помощь

Используя перебор значений вывести на экран в убывающем порядке все двузначные числа, в деся-тичной записи кот
Добрый день вот такая вот задача на отладку программы:используя перебор значений вывести на экран в...

Доказать (перебор) что для любых величин А, В, С типа Boolean следующие пары логических выражений эквивалентны
Доказать (путем перебора возможных значений), что для любых величин А, В, С типа Boolean следующие...

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

4
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 15:45 2
Что значит перебор? Вывести их так ввиде массива как двоичные числа по всему диапазону, т.е если число 00 то вывести 00 01 10 11 или что вы имеете ввиду?
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,488
Записей в блоге: 1
24.06.2013, 15:46 3
C++
1
2
3
4
5
6
7
void increase(bool* array){
  while (*array){
    *array=0;
    array++;
  }
  *array=1;
}
0
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 4
25.06.2013, 16:44  [ТС] 4
я предположила что надо составить условия по замене, но так не смогла пока что алгоритм придумать полностью

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 <string>
#include <stdio.h>
 
using namespace std;
 
int main () {
 
bool b[11];
for (int i=0; i<11; i++) {
        b[i]=false;}
 
 
for (int z=0; z<11; z++) {
        cout << b[z];}
    cout << endl;
 
 
int n = 10;
 
if (b[n]==0) {b[n]=true;};
for (int z=0; z<11; z++) {
        cout << b[z];}
    cout << endl;
n--;
 
for (int i=0; i<11; i++) {
        b[i]=false;};
 
if (b[n]==0) {b[n]=true;};
for (int z=0; z<11; z++) {
        cout << b[z];}
    cout << endl;
}
Добавлено через 5 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
4
5
6
7
void increase(bool* array){
  while (*array){
    *array=0;
    array++;
  }
  *array=1;
}
если объясните как эту функцию заставить работать буду благодарна.

Допустим объявляем наш массив и заполняем нулями
C++
1
2
3
4
bool b[11];
for (int i=0; i<11; i++) {
        b[i]=false;};
}
а далее как сделать чтобы работала она? я так понимаю вы используете указатели?
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 17:02 5
last13day, все намного проще. вводите разрядность n и все:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
void Print(int a, int n)
{
   for(int i = n - 1; i >= 0; --i)
      std::cout << ((a >> i) & 1);
   std::cout << std:: endl;         
}
 
int main()
{
   int n, i;
   std::cin >> n;
   for(i = 0; i < (1 << n); ++i)
      Print(i, n);
   return 0;        
}
хотите через массив, тоже просто, используйте рекурсию:
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
#include<iostream>
const int N = 5;
 
void Print(int *a, int n)
{
   for(int i = 0; i < n; ++i)
      std::cout << a[i];
   std::cout << std:: endl;         
}
 
void Generate(int *a, int i, int n)
{
   if (i == n)
      Print(a, n);
   else
   {
      a[i] = 0;
      Generate(a, i + 1, n);
      a[i] = 1;
      Generate(a, i + 1, n);
   }
}
 
int main()
{
   int b[N];
   Generate(b, 0, N);
   return 0;        
}
1
25.06.2013, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2013, 17:02
Помогаю со студенческими работами здесь

Ввод числа в троичной системе и вывод в пятиричной системе
Доброго времени суток форумчане. В университете дали задание, ввести число в троичной системе и...

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

Перебор массивов используя цикл for
Есть два массива, в одном - атрибуты name якорей на дни недели в таблице вузовского расписания, в...

Перебор полей ввода, используя foreach
Всем привет. Т. к. php изучаю только пару недель прошу помочь с задачей: на html странице есть две...


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

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