Решил один из методов таким образом:
public int numberOfDigits(int a){
if (a<10){
System.out.print("однозначное");
}else if (a<100){
System.out.print("двузначное");
}else if (a>=100){
System.out.print("трехзначное");
Метод получился, так скажем, "бронебойным", и достаточно примитивным. Я видел в интернете, как решили метод нахождения количества цифр через логарифмы, и еще каким-то образом. Как еще, более изощренно и лаконично, решается данный метод, скажите, пожалуйста? В том числе, и про логарифмы хотелось бы более подробно. В чем суть? И есть ли какие-то методы для нахождения количества цифр, подобно тому, что применяется для нахождения количества букв в строке (lenght())?
Владислав
41 уровень
Каким образом еще можно решить задачу?
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
АлександрExpert
27 декабря 2019, 19:46решение
десятичный логарифм возвращает степень десятки.
соответственно, значение десятичного логарифма числа тесно связано с количеством цифр в числе.
например,
Math.log10(100) = 2 (так как 100 = 10^2)
а Math.log10(1000) = 3
соответственно, для любых трехзначных чисел значение десятичного логарифма будет в диапазоне [2..3)
для двузначных - [1..2)
для однозначных - [0..1)
а по поводу length - можно привести число к строке (например, через Integer.toString())
и посмотреть длину этой строки
+2