Просмотр полной версии : Помогите написать аналог Math.pow()
VSEM-DOBRA
13.07.2018, 20:09
Нужна функция
function pow(b,e){
//...
}
аналог Math.pow(b,e);
пожалуйста.
b // base
e //expon
console.log(Math.pow(b,e) == pow(b,e));
VSEM-DOBRA,
function pow(b,e){
return --e ? b * pow(b,e) : b
}
alert(pow(2,3) == Math.pow(2,3));
VSEM-DOBRA
13.07.2018, 20:37
рони :cray:
function pow(b,e){
return --e ? b * pow(b,e) : b
}
alert(Math.pow(2482,(1/4)));
alert(pow(2482,(1/4)) == Math.pow(2482,(1/4)));
райс, спасибо но нужно ES5 или ниже
VSEM-DOBRA,
не судьба значит :) , читайте учебники математики про возведение в степень, мой вариант для натуральных чисел.
Alexandroppolus
13.07.2018, 21:25
оно?
function pow(b, e) {
return Math.exp(e * Math.log(b));
}
VSEM-DOBRA
14.07.2018, 00:00
Alexandroppolus,
THE BEST!
Rise,
Сам не в восторге =(
Alexandroppolus, так не интересно. Надо без Math, на чистой бинарной логике.)
VSEM-DOBRA
14.07.2018, 00:04
Aetae,
Попробуйте =)
ArsenPapiyan
29.01.2019, 19:28
function myPow(x, n) {
var result = 1;
if (n == 0) {
return 1;
}
else if (n < 0) {
for (var i = 0; i > n; i--) {
result /= x;
}
return result;
}
else {
for (var i = 0; i < n; i++) {
result *= x;
}
return result;
}
}
ArsenPapiyan,
:no:
function myPow(x, n) {
var result = 1;
if (n == 0) {
return 1;
}
else if (n < 0) {
for (var i = 0; i > n; i--) {
result /= x;
}
return result;
}
else {
for (var i = 0; i < n; i++) {
result *= x;
}
return result;
}
}
console.log(myPow(2482,(1/4)) == Math.pow(2482,(1/4)));
ArsenPapiyan
29.01.2019, 19:42
j0hnik,
Черт... :-? но для новичка вполне нормально :yes:
ArsenPapiyan
30.01.2019, 12:49
j0hnik,:)
function isInteger(num) {
return (num ^ 0) === num;
}
function myPow(x, n) {
var result = 1;
if (n == 0) {
return 1;
}
else if (n < 0) {
var b;
for (var i = 0; i > n; i--) {
result /= x;
}
return result;
}
else if (isInteger(n) == false) {
result = Math.exp(n * Math.log(x));
return result;
}
else {
for (var i = 0; i < n; i++) {
result *= x;
}
return result;
}
}
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot