Autor
|
Tema: Elevado a la potencia en JS (Leído 5,614 veces)
|
Ali Baba
|
Sé que hay una función en javascript que eleva un número a la potencia Math.pow(pam1,pam2);
Solo que me pico la curiosidad y quise re inventarla Se supone que cree una función function potencia(a,b){ a = parseInt(a); b = pareeInt(a); c = a^b //suponiendo que este símbolo ^ hace referencia a la potencia return c //para retornar el valor de c } document.write(2,2); //esto tiene que dar 4 no? Me da 0
Que hago mal aquí?
|
|
|
En línea
|
|
|
|
engel lex
|
no te has detenido a preguntar... si hay un operador de potencia, para que tengo que cargar la librería math y usar una funcion para hacer lo mismo mucho más complicado? luego, no se te ocurrido googlear los operadores de jscript? http://www.htmlpoint.com/javascript/corso/js_30.htm
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Ali Baba
|
no te has detenido a preguntar... si hay un operador de potencia, para que tengo que cargar la librería math y usar una funcion para hacer lo mismo mucho más complicado? luego, no se te ocurrido googlear los operadores de jscript? http://www.htmlpoint.com/javascript/corso/js_30.htmLo busqué, pero cuando lo busque ya había puesto el código acá, ahora, por qué no hacerlo aunque más complicado? Quiero aprender cómo hacerlo, se que no hay operador de potencia, ahora, hay otra forma de hacerlo sin tener que cargar la librería math aunque sea más complicado?
|
|
|
En línea
|
|
|
|
engel lex
|
no te digo que no lo intentes, lo que me refería era a la logica de //Esto: c=a^b; //contra esto: c=Math.pow(a,b); como hacerlo? simple, con un ciclo, como lo harías a mano, multiplicas el numero por si mismo n veces... eso si, no será igual de rapido que Math.pow, ya que esta ultima está implementada a bajo nivel
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Ali Baba
|
no te digo que no lo intentes, lo que me refería era a la logica de //Esto: c=a^b; //contra esto: c=Math.pow(a,b); como hacerlo? simple, con un ciclo, como lo harías a mano, multiplicas el numero por si mismo n veces... eso si, no será igual de rapido que Math.pow, ya que esta ultima está implementada a bajo nivel Pensé en el ciclo, pero no doy bien con el algoritmo, pensé en crear un while donde asiendo el coeficiente, se multiplique por el mismo la cantidad de veces que de coloque en b su exponente. Pero como logro esto, esto es lo que tengo hasta ahora a = prompt("elige el número a potenciar"); b = prompt("elige la potencia"); while(true){ c= a*a break // ósea como hago que a*a se detenga hasta que cumpla con la cantidad del exponente?
|
|
|
En línea
|
|
|
|
engel lex
|
lee sobre los ciclos for... hazlo con un ciclo for sobre la formula, c=a*a es darle con un palo al agua... ya que a= 3, c=0, ciclos=3 ciclo 1: c=a*a c -> 9
ciclo 2: c=a*a c -> 9
el resultado debe acumularse, lo logico es a = 3, c = 1, ciclos = 3 ciclo 1: c= c*a; c -> 3
ciclo 2: c= c*a c -> 9
ciclo 3: c= c*a c -> 27
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
flacc
|
lee sobre los ciclos for... hazlo con un ciclo for sobre la formula, c=a*a es darle con un palo al agua... ya que a= 3, c=0, ciclos=3 ciclo 1: c=a*a c -> 9
ciclo 2: c=a*a c -> 9
el resultado debe acumularse, lo logico es a = 3, c = 1, ciclos = 3 ciclo 1: c= c*a; c -> 3
ciclo 2: c= c*a c -> 9
ciclo 3: c= c*a c -> 27
Le has quitado la diversión al chico jajajajajaja
|
|
|
En línea
|
|
|
|
|
|