Foro de programación en PHP
Duda muy facil
| Autor: kubanita09 Publicado: 27-5-2009 08:17 AM |
|
|
Hola estoy aprendiendo a programar y tengo algunas dudas por ejemplo en esta funcion quiero hallar el factorial de un # y no logro que en la segunda iteracion del for ;la var que guarda la multiplicacion del # que me entran por el numero anterior se mantenga, es decir por ejemplo: la primera vez que el ciclo entra seria: $var = $numero * ($numero -1) si el # k me entran es un 5 la $var tendra 20 entonces lo k kiero es k la segunda vez que entre me multiplique 20 * numero que le sigue o sea por 3 y lo que he logrado hacer es k la primera vez lo haga pero ya la segunda vez la var toma valor 0 y lo que hace es multiiplicar el nuevo numero que me entran por el anterior, aki le hice unnos cambios y esta peor menos que menos me hace lo que quiero function factorial($n) { for ($i = $n ; $i >= 2 ; $i--) { if ($n <= 0) print ("Debe introducir un numero mayor que 0"); if($i == $n) { $factorial = ($i -1) * $n; } else $var = $factorial * $i; } return $var; } echo $var = factorial(5); si me pueden ayudar se los agradecere, tendre muchas mas dudas. ahhh otra kosilla no se como saber si un numero es impar o no tengo esto pero es evidente que no se cumple la condicion del if pork esta muy mal declarada: function Numeros_Primos($numero) { $n_primo = $numero /2; if ($n_primo == float) //tengo k ver como decir si un # es primo o no { echo "true"; return true; } else echo "false"; return false; } echo $var = Numeros_Primos(3); gracias.. |
|
| Autor: maxter Publicado: 28-5-2009 11:17 AM |
|
| Colega el problema es que tienes error de conceptos. En la primera duda: el factorial de un número se calcula multiplicando sus antesesores por el resultado ej. factorial de 5 = 5 x 4 x 3 x 2 x 1 codigo arreglado: <?php function factorial($n) { if ($n <= 0) { print ("Debe introducir un numero mayor que 0"); } else { for ($i = $n - 1; $i >= 1; $i--) { $n *= $i; } } return $n; } echo $var = factorial(5); ?> Segunda duda: para saber que un número es impar solo debes saber si el resultado del resto de la división, si es 0 no es impar. Codigo arreglado: <?php function Numeros_Primos($numero) { $n_primo = $numero % 2; if ($n_primo == 0) //tengo k ver como decir si un # es primo o no { $primo = 0; } else { $primo = 1; } return $primo; } echo $var = Numeros_Primos(5); ?> |
|

