1

Тема: Как найти первые k(k<=9) цифр числа N^N(n<=10^9)?

думаю,что без бинарного возведения в степень не обойтись,а вот что дальше делать я не знаю ещё.

2

Re: Как найти первые k(k<=9) цифр числа N^N(n<=10^9)?

A = a * 10^X = 10^(lg(A) - floor(lg(A))) * 10^floor(lg(A))
a = 10^(lg(A) - floor(lg(A)))
вместо 123456 получиться 1.23456 * 10^5

Ответ соответственно будет floor(a * 10^(k - 1))

3

Re: Как найти первые k(k<=9) цифр числа N^N(n<=10^9)?

Как можно повысить точность вычислений используя данные формулы, в с++ log10 дает погрешности?

4

Re: Как найти первые k(k<=9) цифр числа N^N(n<=10^9)?

it hasn't got so long code:

       double len=floor(n*log10(n))+1;

       double ost=n*log10(n)+1.0-len;

       unsigned long long result=(unsigned long long)(pow(10.0,ost));