Task 66. Степень двойки
UniLecsЗадача: дана строка, в ней последовательно записаны n степеней двойки, т.е. числа от 2 до 2 в степени n. Числа записаны без пробелов.
Напишите функцию, ктр выведет значение n, где 1 <= n <= 1000.
Пример:
"248163264128"
Вывод: 7
Идея: воспользуемся свойством логарифма, из ктр получается что количество цифр в десятичной записи числа n равно [lg(n)] + 1, где [] - целая часть от десятичного логарифма. Соот-но кол-во цифр в десятичной записи числа 2 в степени n равно [n*lg(2)] + 1.
Начинаем суммировать кол-во цифр в числах 2, 2^2, 2^3, 2^4, ... Суммирование продолжаем до тех пор, пока не получим число, равное кол-ву цифр во входной строке.
Реализация:
https://gist.github.com/unilecs/c610c8215cbbcacae23a6c2935b67fa6
Тест:
https://dotnetfiddle.net/rKBK7y