function mynumber(a, b) {
var c = 1;
if (b < 0) {// 5 ** -2 = 0.04
// здесь не знаю как продолжить
}
else{
for (var i = 1; i <= b; i++) {
c *= a; // 1 * 5 = 5, 5 * 5 = 25, 25 * 5 = 125;
}
}
return c;
}
console.log(mynumber(5, -2));
Math.pow
уже не работает?const pow = (number, power) => {
if (number === 1 || power === 0) {
return 1;
}
const count = Math.round(Math.abs(power));
let result = number;
for (let index = 0; index < count - 1; index++) {
result *= number;
}
if (power < 0) {
return 1 / result;
} else {
return result;
}
};
console.log(Math.pow(2, 2) === pow(2, 2)); // true
console.log(Math.pow(2, -2) === pow(2, -2)); // true
console.log(Math.pow(2, -3) === pow(2, -3)); // true
console.log(Math.pow(3, -4) === pow(3, -4)); // true
function mynumber(a, b) {
var c = 1;
if (b < 0) {
for (var i = b; i < 0; i++) {
c /= a;
}
} else {
for (var i = 1; i <= b; i++) {
c *= a;
}
}
return c;
}
5^-2 == (1/5)^2
Т.е. надо инвертировать число, возводимое в степень, и дальше возводить его в положительную степень.x1=x
x2=x1*x1
x4=x2*x2
x8=x4*x4
x16=x8*x8
x19=x16*x2*x1 // ибо 19=16+2+1
Как это переписать в виде цикла - думайте сами.