Это действительно странное решение.Во-первых, у него есть очевидная проблема переполнения (результат двух добавленных целых чисел может не вписаться в сам int), и я понятия не имею, почему именно мы хотим разделить на 10 для простого сложения двух чиселэто действительно необходимо только для преобразования числа в десятичную строку.
В любом случае, просто подумайте, сколько цифр может иметь произведение двух чисел.Для простоты мы попробуем это в base10, но обобщение очевидно:
Длинное число из k цифр самое большее 10^k - 1
большое.Следовательно, если у нас есть число с n цифрами и одно с m, результат будет не более: 10^n - 1 + 10^m - 1 = 10^n + 10^m - 2
.Наибольшее значение, которое мы можем получить, это если n == m, что эквивалентно 10 ^ n * 2 - 2, что явно меньше 10 ^ (n + 1).Это означает, что число имеет максимум на одну цифру больше, чем большее из двух (это также верно для основания 2).