Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Ir al Blog de posicionamiento web



Foro de programación en PHP

Responder el mensaje

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);
?>