网站首页 网站地图
网站首页 > 创业资讯 > c语言求n的阶乘

c语言求n的阶乘

时间:2026-03-23 15:46:10

在C语言中,计算一个正整数n的阶乘可以通过多种方法实现,以下是几种常见的方法:

方法一:使用for循环

```c

include

int main() {

int n, i;

unsigned long long factorial = 1;

printf("请输入一个正整数:");

scanf("%d", &n);

if (n < 0) {

printf("错误!负数没有阶乘。\n");

} else {

for (i = 1; i <= n; i++) {

factorial *= i;

}

printf("%d 的阶乘 = %llu\n", n, factorial);

}

return 0;

}

```

方法二:使用while循环

```c

include

int main() {

int n, i = 1;

unsigned long long factorial = 1;

printf("请输入一个正整数:");

scanf("%d", &n);

if (n < 0) {

printf("错误!负数没有阶乘。\n");

} else {

while (i <= n) {

factorial *= i;

i++;

}

printf("%d 的阶乘 = %llu\n", n, factorial);

}

return 0;

}

```

方法三:使用递归

```c

include

long factorial(int n) {

if (n == 1) return 1;

else return n * factorial(n - 1);

}

int main() {

int n;

printf("请输入一个正整数:");

scanf("%d", &n);

printf("%d! = %ld\n", n, factorial(n));

return 0;

}

```

注意事项

当n较大时,阶乘结果可能超出`int`类型的范围,因此可能需要使用`long long`或`unsigned long long`类型来存储结果。

输入负数时,程序应提示错误信息,因为负数没有阶乘。

递归方法虽然简洁,但是当n较大时可能会导致栈溢出。

请根据您的需要选择合适的方法进行计算。