С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Итак, изначально есть массив из boolean,
допустим 000000
Надо произвести перебор, как если бы это было число в 2ичной системе
вот так
000000
000001
000010
000011
000100
000101
....
101111
111111
Как осуществить данный перебор, не переводя наш массив в другие типы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 натуральных числа не используя операции умножения и иметь логарифмическую сложность(помогите написать хотя...

4
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 15:45 #2
Что значит перебор? Вывести их так ввиде массива как двоичные числа по всему диапазону, т.е если число 00 то вывести 00 01 10 11 или что вы имеете ввиду?
0
Kuzia domovenok
2060 / 1905 / 174
Регистрация: 25.03.2012
Сообщений: 6,567
Записей в блоге: 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
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;};
}
а далее как сделать чтобы работала она? я так понимаю вы используете указатели?
0
Thinker
Эксперт С++
4229 / 2203 / 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;        
}
1
25.06.2013, 17:02
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...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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