Постановка задачи
Для нумерации $latex m$ страниц книги использовали $latex n$ цифр. По заданному $latex n$ вывести $latex m$ или $latex 0$, если решения не существует. Нумерация начинается с первой страницы.
Входные данные
Единственное число n. В книге не более 1001 страницы.
Выходные данные
Искомое количество страниц.
Тесты
№ | Входные данные | Выходные данные |
1 | 27 | 18 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import java.util.*; import java.lang.Math.*; class Task3 { public static void main (String[] args) { int N; Scanner in = new Scanner(System.in); N = in.nextInt(); for (int i = 1; true; i++) // i - номер страницы, будем отнимать от N количество цифр в i { N -= Math.floor(Math.log10(i) + 1); if (N == 0) // если лишних цифр у нас не осталось { System.out.println(i); break; } else if (N < 0) // иначе выводим "0" { System.out.println(0); break; } } } } |
Описание решения
Для решения данной задачи необходимо использовать переменную с целочисленным значением, которое соответствует количеству цифр использованных для нумерации страниц. Вводим переменную и выводим, какому количеству страниц соответствует данная величина используя логарифм по основанию $latex 10$.
Посмотреть, как работает программа со входными данными 27 можно на сайте ideone.
Задача решена на основе данного решения.
Не хотите прочитать на Википедии, что такое ключевые слова?