Сколько цифр?

Поясните докладо как ето сделать )))

Кексу так нравится автоматизация, что Босс пытается передать программам максимум задач, даже самых бытовых и с виду простых. Например, сейчас Кекс хочет, чтобы вы написали программу, которая умеет определять количество цифр в любом целом числе.

Мяу! Напишу программу, которая определяет сколько цифр в одном целом числе.

Само число записано в переменную number .

Найди количество цифр в этом числе и запиши результат в переменную quantity .

Попробуйте решить эту задачу самостоятельно. Но если у вас возникли сложности с решением, загляните в подсказку ниже.

Скрыть подсказку

Чтобы решить эту задачу, можно пойти разными путями. Например, математическим: делить число на 10 и округлять его на каждой итерации.

Например, сделать цикл while (n > 0) и уменьшать n в 10 раз (при помощи Math.floor(), естественно) - тогда при каждом убирании очередной правой цифры из n увеличится счётчик цифр числа.

можно преобразовать в строку/массив и взять длину, как свойство этих типов

Не нужно округлять))

var number = 23515625621;
var cutNumber = number;
var quantity = 0;
var i = 0;

while(quantity <= number && cutNumber > 1){

if(cutNumber >= 1){

cutNumber = cutNumber/10;

console.log(cutNumber);
quantity++;
} 

}

console.log(quantity);

Не нужно округлять))

var number = 23515625621;
var cutNumber = number;
var quantity = 0;
var i = 0;

while(quantity <= number && cutNumber > 1){

if(cutNumber >= 1){

cutNumber = cutNumber/10;

console.log(cutNumber);
quantity++;
} 

}

console.log(quantity);

я вообще не стал заморачиваться с этим))
quantity = number.toString().split('').length;

2 лайка

Решение, на уровне ежик в тумане ))

var number = 1543;
var quantity = 0;
var ten = 10;


if(number > ten){
  if(number > 99){
      quantity = 1;
    while(number > ten){
      number /= ten;
      quantity++;
    }
  }else{
    quantity = 2;
  }
}else{
    quantity = 1;
}
1 лайк

var number = 123;
var quantity = 0;

for (var i = 1; i <= number; i *= 10) {
quantity++;
}

1 лайк

чуть с ума не сошел, пока выполнял)):

var number = 123;
var quantity = 0;
var n = number;

while (n > 0) {
  n = Math.floor(n / 10);
  quantity++;
}
1 лайк

У меня получилось так:

var number = -12.5;
var quantity = 0;

for (var i = 1; i <= Math.abs(Math.round(number)).toString().length; i++) {
  quantity = i;
}

Не пойму: Зачем округлять в меньшую сторону( как сказано в подсказке)? Вроде и без округления проверка проходит.

Спасибо, я бы тоже сошел если бы сам додумался)).
Дополню такой версией

for (number;number > 0;quantity++) {
number = Math.floor(number / 10);
}

Почему бы не срезать :upside_down_face:
quantity = String(number).length

1 лайк

Без перевода в строку:

for (let i=1;!(number%i===number);i*=10) {
quantity++;
}
let number = 123;
let quantity = 1;

while (number >= 10) {
  quantity ++;
  number /= 10;
  }