Foros del Web » Programando para Internet » Javascript »

Factoriales algo va mal

Estas en el tema de Factoriales algo va mal en el foro de Javascript en Foros del Web. Buenas a todos! Alguien me podria decir por qué en este programilla de sacar el factorial de dos numeros .. con el primero(m) funciona y ...
  #1 (permalink)  
Antiguo 19/12/2012, 14:51
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Factoriales algo va mal

Buenas a todos! Alguien me podria decir por qué en este programilla de sacar el factorial de dos numeros .. con el primero(m) funciona y luego con (n) saca el doble del anterior .. si tengo la misma sentencia for para ambos... Soy bastante novato tiene que ser una tontería pero no la veo. Gracias de antemano.

var fact=1;
var num;
var m;
var n;
m=prompt("Escribe un número m ","");
n=prompt("Escribe otro número n ","");

m=parseInt(m,10);
n=parseInt(n,10);

for(i=1;i<=m;i++) fact=fact*i;
alert("El factorial de m "+m+" es "+fact);
//el factorial de un numero es 1*2*3*4*...*numero

for(i=1;i<=n;i++) fact=fact*i;
alert("El factorial de n "+n+" es "+fact);
  #2 (permalink)  
Antiguo 19/12/2012, 15:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Factoriales algo va mal

Porque no estás reiniciando el valor de la variable fact antes del segundo bucle.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/12/2012, 16:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Factoriales algo va mal

Muchas gracias David! había que reiniciar variable

for(i=1;i<=m;i++) fact=fact*i;
alert("El factorial de m "+m+" es "+fact);
//el factorial de un numero es 1*2*3*4*...*numero

fact=1; //reiniciamos variable
for(i=1;i<=n;i++) fact=fact*i;
alert("El factorial de n "+n+" es "+fact);

Y ahora como puedo por ejemplo multiplicar el resultado de ambos bucles.
Algo así supongo pero me multiplica el factorial de n no el de m y n

alert ("El coeficiente es " + (fact*fact));

y esto supongo que ni exista...

alert ("El coeficiente es " + (fact(m)*fact(n)));
  #4 (permalink)  
Antiguo 19/12/2012, 17:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Factoriales algo va mal

En ese caso debes usar otro nombre de variable para el segundo bucle en lugar de sobreescribir la variable fact. De ese modo, tendrás ambos datos para poder multiplicarlos en ell final.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:00.