#include <stdio.h>
int fatorial(int num) {
if (num >= 0) {
int fat = 1;
while (num > 0) {
fat *= num;
num--;
}
return fat;
} else {
return -1;
}
}
int main() {
int num;
printf("ESTE POGRAMA CALCULA N FATORIAL = N!\n"); printf("Digite um valor para ser calculado: "); int fat = fatorial(num); //chama a função passado o que foi digitado e guarda em fat
if (fat < 1) { //verifica se o retorno é menor que 1, se for indica erro
printf("O calculo do fatorial se aplica somene aos numeros naturais.\n"); } else { //se fat não for menor que um, então pode imprimir o resultado
printf("\n\tO fatorial de %d = %d\n\n", num
, fat
); } //encerrou o bloco do if, só executa um dos dois blocos, nunca ambos
}
//https://pt.stackoverflow.com/q/185619/101
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZmF0b3JpYWwoaW50IG51bSkgewogICAgaWYgKG51bSA+PSAwKSB7CiAgICAgICAgaW50IGZhdCA9IDE7CiAgICAgICAgd2hpbGUgKG51bSA+IDApIHsKICAgICAgICAgICAgZmF0ICo9IG51bTsKICAgICAgICAgICAgbnVtLS07CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYXQ7CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAtMTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbnVtOwogICAgcHJpbnRmKCJFU1RFIFBPR1JBTUEgQ0FMQ1VMQSBOIEZBVE9SSUFMID0gTiFcbiIpOwogICAgcHJpbnRmKCJEaWdpdGUgdW0gdmFsb3IgcGFyYSBzZXIgY2FsY3VsYWRvOiAiKTsKICAgIHNjYW5mKCIlZCIsICZudW0pOwogICAgaW50IGZhdCA9IGZhdG9yaWFsKG51bSk7IC8vY2hhbWEgYSBmdW7Dp8OjbyBwYXNzYWRvIG8gcXVlIGZvaSBkaWdpdGFkbyBlIGd1YXJkYSBlbSBmYXQKICAgIGlmIChmYXQgPCAxKSB7IC8vdmVyaWZpY2Egc2UgbyByZXRvcm5vIMOpIG1lbm9yIHF1ZSAxLCBzZSBmb3IgaW5kaWNhIGVycm8KICAgICAgICBwcmludGYoIk8gY2FsY3VsbyBkbyBmYXRvcmlhbCBzZSBhcGxpY2Egc29tZW5lIGFvcyBudW1lcm9zIG5hdHVyYWlzLlxuIik7CiAgICB9IGVsc2UgeyAvL3NlIGZhdCBuw6NvIGZvciBtZW5vciBxdWUgdW0sIGVudMOjbyBwb2RlIGltcHJpbWlyIG8gcmVzdWx0YWRvCiAgICAgICAgcHJpbnRmKCJcblx0TyBmYXRvcmlhbCBkZSAlZCA9ICVkXG5cbiIsIG51bSwgZmF0KTsKICAgIH0gLy9lbmNlcnJvdSBvIGJsb2NvIGRvIGlmLCBzw7MgZXhlY3V0YSB1bSBkb3MgZG9pcyBibG9jb3MsIG51bmNhIGFtYm9zCn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzE4NTYxOS8xMDE=