Помогите написать аналог Math.pow()
Нужна функция
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));
|
рони :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,
не судьба значит :) , читайте учебники математики про возведение в степень, мой вариант для натуральных чисел. |
оно?
function pow(b, e) {
return Math.exp(e * Math.log(b));
}
|
Alexandroppolus,
THE BEST! Rise, Сам не в восторге =( |
Alexandroppolus, так не интересно. Надо без Math, на чистой бинарной логике.)
|
Aetae,
Попробуйте =) |
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)));
|
j0hnik,
Черт... :-? но для новичка вполне нормально :yes: |
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;
}
}
|
| Часовой пояс GMT +3, время: 12:00. |