Stack Overflow en español Asked on January 4, 2022
[![introducir la descripción de la imagen aquí][1]][1]
Amigos, estoy tratando de calcular el factorial con pseudocódigo de Pseint.
Algoritmo algo1
Leer num
cont<-0
fact<-1
repetir
fact<-fact*num
cont<-cont+1
hasta que (cont<=num)
Escribir fact
FinAlgoritmo
Lastimosamente, no me da el resultado correcto, lo ejecuto y da el mismo valor
> 5
5
Te recomiendo que repases la definición de factorial, por ejemplo, en Wikipedia.
El algoritmo de forma iterativa puede quedar como:
Proceso sin_titulo
Definir numero Como Entero;
Definir contador Como Entero;
definir factorial Como Entero;
Leer numero;
contador<-1;
factorial<-1;
Mientras contador<numero Hacer
contador<-contador+1;
factorial<-factorial*contador;
Fin Mientras
Escribir factorial;
FinProceso
De forma alternativa, se puede plantear definiendo una función recursiva, es decir, que se llame a si misma:
SubProceso f<- Factorial ( n )
definir f Como Entero;
Si n <0 Entonces
escribir "Error factorial solo definido para número naturales";
f<--1;
Sino
Si n<=1 Entonces
f =1;
SiNo
f<-Factorial(n-1)*n;
FinSi
FinSi
Fin SubProceso
Proceso sin_titulo
Definir n Como Entero;
Leer n;
Definir f Como Entero;
f<-Factorial(n);
Escribir f;
FinProceso
Answered by Emilio J on January 4, 2022
Esta mal tu esquema de factorial. Estás multiplicando el numero muchas veces por si mismo (estas elevando el numero por si mismo, 5 elevado a 5 es 3125), tienes que multiplicar el contador por el numero factorial.
cont=cont+1
fact=fact*cont
(eso debería estar dentro del bucle)
Answered by Matias on January 4, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP