inteirofatorial=1,numescreva("Informe um número: ")leia(num)limpa()escreva("Vamos calcular o fatorial de "+num,".\n\n")se(num>=0enum<=1){escreva(num,"!=",1)}senao{para(inteiron=num;n>=1;n--){escreva(n,"x")fatorial=fatorial*n}escreva("\n\n",num,"!= ",fatorial)}
staroski1 like
Assim?
inteirofatorial=1,numescreva("Informe um número: ")leia(num)limpa()escreva("Vamos calcular o fatorial de "+num,".\n\n")se(num>=0enum<=1){escreva(num,"!=",1)}senao{para(inteiron=num;n>=1;n--){se(n==1){escreva(n,"=")}senao{escreva(n,"x")}fatorial=fatorial*n}escreva("\n\n",num,"!= ",fatorial)}
L
Lucas_Sandes
Mais ou menos, queria que fosse sem precisar do IF!
staroski
E como você pensa em decidir se é pra imprimir x ou = ?
hugokotsubo
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?)