Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
last13day
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 4
#1

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

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

Итак, изначально есть массив из boolean,
допустим 000000
Надо произвести перебор, как если бы это было число в 2ичной системе
вот так
000000
000001
000010
000011
000100
000101
....
101111
111111
Как осуществить данный перебор, не переводя наш массив в другие типы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 15:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перебор числа в 2ичной системе, используя boolean (C++):

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

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

Используя перебор значений найти все такие целые a, b, что n=3a+5b для любого натурального n>7 - C++
Помогите с задачей,пожалуйста.

Заменить все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления - C++
На планете Роботов очень не любят десятичную систему счисления, поэтому они попросили Вас написать программу, которая заменяет все...

Определить все ли числа натурального числа N, представленного в 9ричной системе счислений являются одинаковыми - C++
Определить все ли числа натурального числа N, представленного в девятиричной системе счислений являются одинаковыми.

Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность - C++
Программа должна перемножать 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность(помогите написать хотя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 15:45 #2
Что значит перебор? Вывести их так ввиде массива как двоичные числа по всему диапазону, т.е если число 00 то вывести 00 01 10 11 или что вы имеете ввиду?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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;
}
last13day
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;};
}
а далее как сделать чтобы работала она? я так понимаю вы используете указатели?
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 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;        
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2013, 17:02
Привет! Вот еще темы с ответами:

Переписать программу, выводящую таблицу умножения в n-ной системе счисления, не используя string - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using std::cout; using std::cin; using...

Представление числа в k-ой системе счисления - C++
Помогите, пожалуйста, надо написать полноценную программу перевода числа в систему счисления по основанию k. На входе программы — число для...

Вычислить сумму двух длинных бинарных чисел, используя сложение чисел в двоичной системе счисления - C++
Задано положительное и отрицательное число в двоичной системе.Составить программу вычисления суммы этих чисел, используя сложения чисел в...

Обьяснить представление числа в двоичной системе - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;iomanip&gt; #include &lt;windows.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.06.2013, 17:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru