Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/56: Рейтинг темы: голосов - 56, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 08.12.2013
Сообщений: 8
1

Все двоичные строки длины n, содержащие ровно k единиц

19.01.2014, 11:44. Показов 10156. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По данным числам N и K выведите все строки из нулей и единиц длины N, содержащие ровно K единиц, в лексикографическом порядке.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2014, 11:44
Ответы с готовыми решениями:

Дана строка из 25 слов. Вывести на экран все слова строки, содержащие ровно две буквы D
Дана строка из 25 слов. Вывести на экран все слова строки, содержащие ровно две буквы D. Заранее...

Все двоичные строки длины n, содержащие ровно k единиц
По данным числам N и K выведите все строки из нулей и единиц длины N, содержащие ровно K единиц, в...

Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n)
Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m&lt;=n)...

Программа должна генерировать все двоичные строки заданной длины (MASM)
Доброго времени суток, в общем задание наверху, но чет как-то у меня не идет. Как я понял нужно...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
19.01.2014, 15:39 2
Лучший ответ Сообщение было отмечено Nick012 как решение

Решение

Либо "в лоб":
Pascal
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
var
  n, k: integer;
  t, i, cnt: integer;
  s: string;
 
begin
  n := 5; k := 3;
  for i := 1 to pred(1 shl n) do
  begin
    s := '';
    cnt := 0;
    t := i;
    repeat
      inc(cnt, t mod 2);
      s := Chr(Ord('0') + (t mod 2)) + s;
      t := t div 2;
    until t = 0;
    if cnt = k then 
    begin
      while length(s) <> n do s := '0' + s;
      writeln(s);
    end;
  end;
  
end.
, либо покрасивее:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  n, k: integer;
 
procedure p(s : string; ones : integer);
begin
  if (length(s) = n) then
  begin
    if ones = k then writeln(s); Exit;
  end;
  if ones > k then Exit;
  p(s + '0', ones);
  p(s + '1', ones + 1);
end;
 
begin
  n := 5; k := 3;
  p('', 0);
end.
(присвоение значений на ввод пользователем переделай сам)
1
19.01.2014, 15:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 15:39
Помогаю со студенческими работами здесь

Строка: Вывести все слова строки, содержащие ровно две буквы d.
(язык программирования Си) ................................................. Здравствуйте!), ...

Сколько строк длины девять содержат ровно 5 единиц и 4 нуля
Сколько строк длины девять содержат ровно 5 единиц и 4 нуля

По данному числу N выведите все строки длины N из нулей и единиц в обратном лексикографическом порядке
Помогите решить: Python :-|3.7 По данному числу N выведите все строки длины N из нулей и единиц в...

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


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

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