UniLecs #185. Минимальное число в строковом представлении
UniLecsЗадача: даны натуральные числа A, B. Необходимо найти такое число, которое было бы минимальным в строковом представлении в промежутке от А до B. Рассматривать только целые числа.
Входные данные: A, B - натуральные числа от 1 до 10^6, A <= B.
Вывод: минимальное число
Пример:
1. A = 6; B = 14;
Answer = 10.
2. A = 3; B = 8;
Answer = 3.
Идея: разберем 2 случая:
- A, B - числа одного порядка, т.е. содержат равное кол-во цифр. В этом случае, очевидно, что даже в строковом представлении число А будет наименьшим на всем промежутке [A, B].
- A, B - числа разного порядка, т.е. число B содержит больше цифр, чем число А. В этом случае наименьшим число в строковом представлении будет число вида "100...00", т.е. число начинающее с единицы и далее нули, кол-во которых равно кол-ву цифр в числе А. Это всегда так, кроме случая, когда само число А является таким число, начинающимся с единицы и заканчивающееся нулями.
https://gist.github.com/unilecs/9d44286d1db614c4240de8f22b4a5d2d
Play-test: https://dotnetfiddle.net/4y19AK
Решения подписчиков:
Антон, Rust
https://gist.github.com/AnthonyMikh/d6b9130850ba65dbc5a8dbf13c643843
Play-test: https://play.rust-lang.org/?mode=release&gist=9117dd1314ca776079cec3e2e46bf702