跳到主要内容

C 编程:找出一个数字的阶乘的程序

要理解这个示例,你应该了解以下 C语言编程 主题:

正数 n 的阶乘表示为:

阶乘 n (n!) = 1 * 2 * 3 * 4....n

负数的阶乘不存在。而0的阶乘为1。

数字的阶乘

#include <stdio.h>
int main() {
int n, i;
unsigned long long fact = 1;
printf("输入一个整数: ");
scanf("%d", &n);

// 如果用户输入负整数,显示错误信息
if (n < 0)
printf("错误!负数的阶乘不存在。");
else {
for (i = 1; i <= n; ++i) {
fact *= i;
}
printf("数字 %d 的阶乘 = %llu", n, fact);
}

return 0;
}

输出

输入一个整数: 10
数字 10 的阶乘 = 3628800

此程序从用户那里获取一个正整数,并使用 for 循环计算阶乘。

由于一个数的阶乘可能非常大,因此阶乘变量声明为 unsigned long long 类型。

如果用户输入负数,程序会显示自定义错误信息。

你也可以通过递归的方式找到一个数的阶乘,可以参考 使用递归求阶乘的方法