UniLecs #185. Минимальное число в строковом представлении

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 случая:

  1. A, B - числа одного порядка, т.е. содержат равное кол-во цифр. В этом случае, очевидно, что даже в строковом представлении число А будет наименьшим на всем промежутке [A, B].
  2. A, B - числа разного порядка, т.е. число B содержит больше цифр, чем число А. В этом случае наименьшим число в строковом представлении будет число вида "100...00", т.е. число начинающее с единицы и далее нули, кол-во которых равно кол-ву цифр в числе А. Это всегда так, кроме случая, когда само число А является таким число, начинающимся с единицы и заканчивающееся нулями.
C#

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

Report Page