UniLecs #117. Снова степень
UniLecsЗадача: дано число k^k. Необходимо определить 1ю цифру этого числа.
Входные данные: k - натуральное число от 1 до 10^4.
Вывод: 1я цифра числа k^k
Пример: k = 3
Answer: 2 (3^3 = 27)
Идея: кол-во цифр числа N (count) можно найти с помощью логарифма. А именно:
Сount = [lg(N)] + 1 ([] - округляем в меньшую сторону)
Давайте рассмотрим след.число T = (k^k / 10^count) * 10 = (10^(k * lg(k)) / 10^count) * 10 = 10^(k*lg(k) + 1 - count). По сути мы делили наше исходное число на 10 в степени кол-ва цифр исх.числа и потом домножили на 10. Поэтому очевидно, что 1 <= T <= 10. А также заметим, что целая часть числа T равна 1й цифре числа k^k.
Рассмотрим пример: K = 3. 3^3 = 27. count = [3*lg(3)] + 1 = 2. Число T = (3^3 / 10^3) * 10 = 10^(3*lg(3) + 1 - 2) = 10^(0.4313) = 2.699
Реализация:
https://gist.github.com/unilecs/60ae61f0db47f793af680ab4e183440b
Test: