вариант:
x = prompt("Введите число:", 5);
n = prompt('Введите степень:', 1);
function pow() {
while (n != 0) {
x=x*x;
return x;
};
}
pow ();
alert (x);
В учебнике предложен вариант такой:
function pow (x, n) {
let result = x;
for (let y = 1; y < n; y++) {
result *=x;
}
}
let x = prompt ("x?", '');
let n = prompt ("n?", '');
if (n < 1) {
alert ('Степень ${n} не поддерживается, используйте натуральное число');
}
else {
alert ( pox(x, n) );
}
Скажите пожалуйста чем вариант из учебника лучше. Чтобы понять, что значит оптимизированный код. 🤷♂️
ваш варик ток в квадрат возводит, а цикл бесполезный
Я проверил, какую степень укажешь, в такую и возводит.
мб, я на шизе, но я не вижу у вас изменений n, + у вас функция с сайд-эффектами, передавайте в качесте параметров
Так n и не должно меняться, оно же задаёт сколько раз число должно быть умножено на себя. Разница между моим вариантом и вариантом из учебника, в том, что моя функция задаётся без параметров и отсылается напрямую к внешним переменным, вот так делать плохо. Здесь я согласен.
да у вас при первой же итерации он свалит из цикла, ну, n нужен как счётчик количества операций умножения
опять задание в котором запрещено юзать ** или Math.pow
хочется стальным прутом бить
В комментах к заданию написано, что ** появилось после написания статьи. Это правда? В смысле, что это какое-то нововведение.
мне на собеседовании запретили Юзать все что угодно кроме for листочек и ручку
вы, надеюсь, втащили каждому по очереди и молча ушли?
та нет, я сначала думал тут какой-то подвох, и думал там стоит где-то камера скрытая, а потом сделал задание за минут 15 у меня только один вопрос был который я должен был на листочке сделать. И таких компаний у меня было 2 в тот день. Правда вторая по теории хотя бы немного спросила.
Не прошел =)
Обсуждают сегодня