Чтобы пронумеровать странички книжки было использовано n цифр. Найдите количество страниц
Чтоб пронумеровать странички книги было использовано n цифр. Найдите количество страниц книжки. Нужна формула для всех n
к примеру было использовано 13 цифр , а страничек оказалось 11
либо
21 цифр , 15 страничек
Anzhelika
Это всё условие?
Лавин
Слава
da
1 ответ
Черногрядский
Степан
Можно с начало найти в какой разряд (однозначное,двузначное,трехзначное итд) принадлежит данное число по количеству цифр n.
Явно n это невольное число, так как цифры образуют разряд числа.
Для чисел 1 до 99 всего от 1 до 189 цифр (9+2*90=189) цифр, страничку можно отыскать по формуле (n-9)/2+9 = (n+9)/2
Для чисел от 100 до 999 всего от 189+3 до 189+3*900=2889 цифр, страницу можно отыскать по формуле (n-189)/3+99 = (n+108)/3
Для чисел от 1000 до 9999 всего от 2889+4 до 2889+4*9000=38889 страницу можно отыскать по формуле (n-2889)/4+999 = (n+1107)/4
итд то есть реккурентная формула будет иметь вид, для k-разряда
S=(n-(9+2*90+3*900+4*9000+...))/k+(10^(k-1)-1) =
(n-9(1+20+300+4000+...))/k+(10^(k-1)-1)
Найдем сумму 1+20+300+4000+.... = 1+2*10+3*10^2+4*100^3=1+2x+3x^2+4x^3+5x^4...+y*x^(y-1) тогда рассмотрим сумму функцию
x+x^2+x^3+x^4...+x^y ее производная x+2x+3x^2+4x^2+...+yx^(y-1) значит найдя сумму x+x^2+x^3+...+x^y=(x^y-1)/(x-1) (геометрическая прогрессия)
Обнаружив ((x^y-1)/(x-1))' и сменяя x=10 и y=k+1
Получаем (10^k*(9*k-1)+1)/81 то есть сумма 1+2*10+3*10^2+4*100^3+... рассчитывается по формуле (10^k*(9*k-1)+1)/81
Подставляя в
То есть к образцу для n=13 получаем k=2 то есть (двузначное число)
откуда S=(9*13+10^2-9*2-1)/18 = 11 страничек
Для n=21 получаем k=2 подставляя S=(9*21+10^2-9*2-1)/(18)=15 страничек
Как определить k можно по оценке, то есть исходя из того какое n , допустим для двузначных чисел количество цифр от 1 до 189 цифр итд
Явно n это невольное число, так как цифры образуют разряд числа.
Для чисел 1 до 99 всего от 1 до 189 цифр (9+2*90=189) цифр, страничку можно отыскать по формуле (n-9)/2+9 = (n+9)/2
Для чисел от 100 до 999 всего от 189+3 до 189+3*900=2889 цифр, страницу можно отыскать по формуле (n-189)/3+99 = (n+108)/3
Для чисел от 1000 до 9999 всего от 2889+4 до 2889+4*9000=38889 страницу можно отыскать по формуле (n-2889)/4+999 = (n+1107)/4
итд то есть реккурентная формула будет иметь вид, для k-разряда
S=(n-(9+2*90+3*900+4*9000+...))/k+(10^(k-1)-1) =
(n-9(1+20+300+4000+...))/k+(10^(k-1)-1)
Найдем сумму 1+20+300+4000+.... = 1+2*10+3*10^2+4*100^3=1+2x+3x^2+4x^3+5x^4...+y*x^(y-1) тогда рассмотрим сумму функцию
x+x^2+x^3+x^4...+x^y ее производная x+2x+3x^2+4x^2+...+yx^(y-1) значит найдя сумму x+x^2+x^3+...+x^y=(x^y-1)/(x-1) (геометрическая прогрессия)
Обнаружив ((x^y-1)/(x-1))' и сменяя x=10 и y=k+1
Получаем (10^k*(9*k-1)+1)/81 то есть сумма 1+2*10+3*10^2+4*100^3+... рассчитывается по формуле (10^k*(9*k-1)+1)/81
Подставляя в
То есть к образцу для n=13 получаем k=2 то есть (двузначное число)
откуда S=(9*13+10^2-9*2-1)/18 = 11 страничек
Для n=21 получаем k=2 подставляя S=(9*21+10^2-9*2-1)/(18)=15 страничек
Как определить k можно по оценке, то есть исходя из того какое n , допустим для двузначных чисел количество цифр от 1 до 189 цифр итд
Гриншпан
Юрий
include include using namespace std;int sum ( int n ) if ( n / 10 != 0 ) return n % 10 + sum ( n / 10 ) ; else return n % 10 ; int main () int j = 10 ; long long n , x ; cin >> n >> x ; for ( int i = 1 ; i < n ; i++ ) j *= 10 ; cout << sum ( j-x ) ;
Велиуллова
Кристина
нечаянно , не обращай внимания
Надежда
Да скорее всего это задачка на программирование
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей
Математика.
Определить предложения какие они по цели высказывания и по интонации
Русский язык.
"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.
Русский язык.
на одной грядке коротышки посадили 3 ряда морковок по 8 штук
Разные вопросы.
эссе на тему какое образование дается в каждой семье
Қазақ тiлi.
Put the verb in brackets into the Present Indefinite.
1The Volga ,
Английский язык.
Облако тегов