20 / 20 / 9
Регистрация: 24.04.2011
Сообщений: 54
|
|
1 | |
Найдите количество чисел, таких, что в записи в двоичной системе счисления используется ровно 2 единицы20.04.2012, 19:44. Показов 5762. Ответов 5
Метки нет (Все метки)
нужно сделать до завтра
Найдите количество чисел Z, удовлетворяющих неравенству A ≤ Z ≤B, таких, что в записи Z в двоичной системе счисления используется ровно 2 единицы. Например, если A=10; B=20; то таких чисел 5 (это числа 10=10102; 12=11002; 17=100012; 18=100102; 20=101002). Формат входных данных На вход программы поступают два числа, записанных через пробел — A, B ( 0 ≤ A, B ≤ 109) Формат выходных данных Выведите одно число – количество чисел Z.
0
|
20.04.2012, 19:44 | |
Ответы с готовыми решениями:
5
Найдите количество чисел Z, удовлетворяющих неравенству A ≤ Z ≤ B, таких, что в записи двоичного разложения Z используется ровно K единиц Найдите количество счастливых чисел записанных в восьмеричной системе счисления В промежутке от A до B найти числа, в записи которых в двоичной системе ровно 2 единиц В промежутке от A до B найти числа, в записи которых в двоичной системе ровно K единиц |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
20.04.2012, 20:50 | 2 | |||||
наверное 10^9
Добавлено через 41 минуту Как считать единицы написано здесь http://algolist.manual.ru/olimp/ar_prb.php Задача 5, нажать решение. Вот код программы с этим алгоритмом, правда быстро считает только до 10^7, дальше тормозит.
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
21.04.2012, 06:09 | 3 | |||||
Axel_kz1996, проверяйте:
1
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
21.04.2012, 08:04 | 4 |
Круто, хоть и не понятно...
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|||||||||||
21.04.2012, 12:25 | 5 | ||||||||||
Тут реализовано всего две идеи:
1. Подсчитать сколько чисел имеют ровно две единицы в числах в диапазоне от 0 до A-1. Подсчитать сколько чисел имеют ровно две единицы в числах в диапазоне от 0 до B. Вычесть из второго первое, это и будет ответ. 2. Сам подсчет чисел имеющих ровно две единицы в числах в диапазоне от 0 до X: при переводе в двоичную систему числа может получится 2 варианта - когда в числе единиц 2 и более, и когда единиц всего одна. Когда единиц две и более нас интересует месторасположение самой левой единицы и следующей за ней самой левой единицы. Например вот такое двоичное число: 101101100 - то здесь maxx=9, minn=7. Числа которые нас интересуют, будут такими: 101000000 100100000 100010000 ...
11000000 10100000 10010000 ... потом такими: 1100000 1010000 1001000 ...
10000000 (maxx=8, minn=0) то, числа которые нас интересуют, будут такими: 1100000 1010000 ... Для этого: Если вдруг minn оказывается <1, то количество интересующих нас чисел равно 0.
0
|
3 / 3 / 1
Регистрация: 11.08.2018
Сообщений: 9
|
|
23.10.2018, 16:17 | 6 |
Переберем позиции двух единиц в битовой записи искомого числа. Потом переведем в двоичную запись и проверим, что число больше A и меньше B. Дополнительно надо заметить, что во всех возможных числах не более 32 бит.
a,b=map(int, input().split()) c=0 for i in range((len(bin(a)))-3,(len(bin(b)))-2): for j in range(i): if 2**j+2**i>=a and 2**j+2**i<=b: c+=1 print(c)
0
|
23.10.2018, 16:17 | |
23.10.2018, 16:17 | |
Помогаю со студенческими работами здесь
6
Посчитать сколько единиц есть в записи числа в двоичной системе счисления Выдает ошибку при записи числа в двоичной системе счисления в debug Если строка является изображением целого числа в восьмеричной системе счисления, то перевести ее в целое число в двоичной системе счисления Вычитание чисел в двоичной системе счисления Деление чисел в двоичной системе счисления Сложение чисел в двоичной системе счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |