Как считаете, почему я получаю значение "undefined", а не римское число? Может, грубая ошибка?
var letters = ["M", "D", "C", "L", "X", "V", "I"];
var nletters = [1000, 500, 100, 50, 10, 5, 1];
var datain = prompt("Введите число, не превышающее 3999: ");
var out = "";
for (var a = 0; a < letters.length; a++ ) {
var calc = Math.trunc(datain/=nletters[a]); //Функция для "отсечения" дробной части
for (var b = calc; b > 0; --b) { //Прибавляем буквы
out+=letters[a];
}
if (calc == 0 || calc > 3) { //Вычитаем то, что уже должно быть записано
datain-=calc*nletters[a];
}
}
alert(out);
описание :
во первых
Math.trunc(datain/=nletters[a]);
Тут явно лишнее равно, оно записывало в datain результат деления из за этого начальные данные терялись
if (calc == 0 || calc > 3) { //Вычитаем то, что уже должно быть записано
datain-=calc*nletters[a];
}
тут условие не нужно, отнимаем всегда, потому, что, если текущее число в datain встречается то надо отнимать, если нет, то отнимем 0
как-то так :
var letters = ["M", "D", "C", "L", "X", "V", "I"];
var nletters = [1000, 500, 100, 50, 10, 5, 1];
var datain = prompt("Введите число, не превышающее 3999: ");
console.log(datain);
var out = "";
for (var a = 0; a < letters.length; a++) {
var calc = Math.trunc(datain / nletters[a]);
for (var b = calc; b > 0; --b) {
out += letters[a];
}
datain -= calc * nletters[a];
}
console.log(out);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть ли возможность сделать авторизацию и сессии на чистом node js без использования express?
Здравствуйте!) Нужна подсказка, как мне отправить картинку из на сервер? Задача такова, я делаю скрин некой области монитора скриптом, формируется...
Хочу попробовать повторить анимационный эффект который, пример его по ссылке пример, при переходе с вкладки на вкладку "О репетиторе" и "отзывы"...