• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JPVieira

bash factorial

2 mensagens neste tópico

boas, estou a programar uma funçao para calcular o factorial de forma recursiva, mas nao sei porque, apartir do 6 ela começa a dar o resultado mal... sera que alguem me sabe explicar pq?

cumprimentos

#Implemente o cálculo do factorial de forma iterativa e recursiva.

factorial (){
echo $1 $2
if [ $1 -eq 0 ]; then
	return 1;
elif [ $1 -ne 1 ];then
	factorial $[$1-1] $[$[$1-1]*$2]
else
	return $2
fi
}

echo -n 'Insira um numero: '
read num

if [ $num -lt 0 -o $num -gt 12 ]; then
echo "O numero deve estar entre 0 e 12"	
return -1 
fi

factorial $num $num
echo "O factorial de $num é $?"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu nunca programei em bash, mas suponho que seja devido à variável que armazena os valores intermédios, se for só de 1 byte passa a dar resultados iguais quando calculas o factorial de um numero >= 6.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora