Здравствуйте. Решал задачку class Solution { fun reverse(x: Int): Int { var reversedValue = 0 var num = x
while (num != 0) { if (reversedValue > 2147483647 / 10 || (reversedValue == 2147483647 / 10 && num % 10 > 7)) return 0 if (reversedValue < -2147483648 / 10 || (reversedValue == -2147483648 / 10 && num % 10 < -8)) return 0 reversedValue = reversedValue*10 + (num % 10) num/=10 } return reversedValue } } оказалось что reversedValue > 2147483647 / 10 и reversedValue * 10 > 2147483647 не одно и тоже. Можете объяснить почему так?
Все проще. У вас в начале написано var reservedValue=0. Таким образом у вас эта переменная получила тип Int. И при делении но 10 она округляет значение. Поэтому и разница.
Все проще. У вас в начале написано var reservedValue=0. Таким образом у вас эта переменная получила тип Int. И при делении но 10 она округляет значение. Поэтому и разница.