TransWikia.com

¿Cómo calcular factorial de un número en Pseint?

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

2 Answers

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP