Вызов :
Подсчитайте количество единиц 1
в двоичном представлении всех чисел в диапазоне.
Вход:
Два недесятичных натуральных числа
Выход :
Сумма всех 1
s в диапазоне между двумя числами.
Пример :
4 , 7 ---> 8
4 = 100 (adds one) = 1
5 = 101 (adds two) = 3
6 = 110 (adds two) = 5
7 = 111 (adds three) = 8
10 , 20 ---> 27
100 , 200 ---> 419
1 , 3 ---> 4
1 , 2 ---> 2
1000, 2000 ---> 5938
Я объяснил только первый пример, иначе он занял бы огромное количество места, если бы я попытался объяснить для всех них.
Замечания :
- Числа могут быть разделены более чем на 1000
- Все входные данные будут действительными.
- Минимальный выход будет один.
- Вы можете принять число в виде массива из двух элементов.
- Вы можете выбрать порядок номеров.
Критерии победы:
Это код-гольф, поэтому выигрывает самый короткий код в байтах для каждого языка.
IntRange
в Kotlin, Range
в Ruby)?
1000 - 2000
дает 5938, но опустить случай на 1000, то результат также снижается на 1000: 0-1000 = 4938
. доказательство