Boa tarde, uma pergunta simples (desculpem minha ignorância)
Eu criei um laço de repetição regressivo (PARA) no Portugol Studio e o resultado foi o seguinte:
10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x.
A pergunta é: Como eu faço pra eliminar esse X depois do 1? Ou colocar um sinal de = por exemplo.
Obrigado a todos (as)
Desculpa, segue o código:
inteiro fatorial = 1, num
escreva("Informe um número: ")
leia (num)
limpa()
escreva("Vamos calcular o fatorial de " + num, ".\n\n")
se (num >= 0 e num <= 1){
escreva(num,"!= " , 1)
}senao{
para (inteiro n = num; n>=1;n--){
escreva(n, " x ")
fatorial = fatorial * n
}
escreva("\n\n", num,"!= " , fatorial)
}
Assim?
inteiro fatorial = 1, num
escreva("Informe um número: ")
leia (num)
limpa()
escreva("Vamos calcular o fatorial de " + num, ".\n\n")
se (num >= 0 e num <= 1){
escreva(num, " != " , 1)
} senao {
para (inteiro n = num; n >= 1; n--){
se (n == 1) {
escreva(n, " = ")
} senao {
escreva(n, " x ")
}
fatorial = fatorial * n
}
escreva("\n\n", num,"!= " , fatorial)
}
1 curtida
Mais ou menos, queria que fosse sem precisar do IF!
E como você pensa em decidir se é pra imprimir x
ou =
?
Por que não quer usar if
? É uma das estruturas mais básicas de qualquer linguagem de programação, e não há motivo nenhum para não usar aqui.
Um jeito seria fazer o loop até o 2, e depois dele escrever o 1 (não fará diferença no cálculo porque multiplicar por 1 não muda o número). Mas aí fica um escreva
a mais fora do loop, que deixa o código - na minha opinião - um pouco pior (se dá para resolver tudo no loop, pra que colocar uma parte fora dele? só para “economizar” um if
?)