Будь ласка до ть з вправою! Дуже розв'язати на листку. (Кодування данних; вправа 1 Довжина двійкового коду тексту) БУДЬ ЛАСКА ВСЯ НАДІЯ НА ВАС! :(((((
если 2^8, то это единица с 8 нулями (всего 9 разрядов). Вычитаем 15, получится 1110001. Восемь разрядов, три предпоследние из которых нули.
2^2015 -- это единица с 2015 нулями (2016 разрядов). Вычитаем 15 и получаем 2015 разрядное число, у которого предпоследние 3 нуля, остальные единицы. Итого 2012 единиц.
4^2015 = (2^2)^2015 = 2^4030. То есть единица и просто дофигища нулей, явно больше чем в предыдущем числе.
Если наглядно показать (к сожалению здесь нет моноширинного шрифта):
10000000000000000
111111111110001
1000000111111111110001
То есть просто впереди первого числа добавится единица и куча нулей.
2013
Объяснение:
2^2015 -- это единица с 2015 нулями.
15 в двоичной записи -- 1111
Вычитать двоичные в столбик учили?
долго объяснять, но получится примерно так:
если 2^8, то это единица с 8 нулями (всего 9 разрядов). Вычитаем 15, получится 1110001. Восемь разрядов, три предпоследние из которых нули.
2^2015 -- это единица с 2015 нулями (2016 разрядов). Вычитаем 15 и получаем 2015 разрядное число, у которого предпоследние 3 нуля, остальные единицы. Итого 2012 единиц.
4^2015 = (2^2)^2015 = 2^4030. То есть единица и просто дофигища нулей, явно больше чем в предыдущем числе.
Если наглядно показать (к сожалению здесь нет моноширинного шрифта):
10000000000000000
111111111110001
1000000111111111110001
То есть просто впереди первого числа добавится единица и куча нулей.
Итого: будет 2015 - 3 + 1 = 2013 единиц.
и, если прямо надо на пятерку:
2013 единиц, 2018 нулей. Всего 4031 разряд
// кстати, а откуда задачки?
#include <iostream>
#include <string>
using namespace std;
int counter = 0;
int answer(string s, int l, int n, int length) {
for (char ch = '0'; ch < length + '0'; ++ch) {
if (ch == '0' && l && s[l - 1] == '0')
continue;
if (l + 1 < n)
answer(s + ch, l + 1, n, length);
else
++counter;
}
return counter;
}
int main() {
int n, length;
cin >> n >> length;
cout << answer("", 0, n, length);
}