Эта задача проста, учитывая десятичное число, преобразовать в двоичное и вычислить сумму подстрок двоичного числа, длина которых короче исходного числа. Вот пример:
Input:
11
Binary:
11 -> 1011
Substrings:
101 = 5
011 = 3
10 = 2
01 = 1
11 = 3
1 = 1
0 = 0
1 = 1
1 = 1
Sum:
5+3+2+1+3+1+0+1+1=17
Output:
17
Ваша программа должна взять одно десятичное целое число в качестве входных данных и вывести сумму двоичных подстрок, как показано выше. Вы можете предположить, что входные данные всегда будут иметь более двух цифр в двоичном представлении, и что входные данные не вызовут никаких ошибок во время выполнения вашей программы.
Это код-гольф , выигрывает самый короткий код в байтах!
Тестовые случаи:
2 => 1
3 => 2
4 => 3
5 => 5
6 => 7
7 => 9
8 => 7
9 => 10
10 => 14
11 => 17