C语言实现n的阶乘有多种方法,这里介绍三种常用的方式。
方法一:循环计算阶乘
#include <stdio.h> int main() { int n, result = 1; printf("请输入一个正整数:"); scanf("%d", &n); for (int i = 1; i <= n; i++) { result *= i; // 计算阶乘 } printf("%d! = %d\n", n, result); return 0; }
方法二:递归计算阶乘
#include <stdio.h> int factorial(int n); int main() { int n; printf("请输入一个正整数:"); scanf("%d", &n); printf("%d! = %d\n", n, factorial(n)); return 0; } int factorial(int n) { if (n == 0) // 0的阶乘为1 { return 1; } else // 递归计算阶乘 { return n * factorial(n - 1); } }
方法三:使用while循环计算阶乘
#include <stdio.h> int main() { int n, result = 1, i = 1; printf("请输入一个正整数:"); scanf("%d", &n); while (i <= n) { result *= i; // 计算阶乘 i++; } printf("%d! = %d\n", n, result); return 0; }
以上三种方法都可以计算n的阶乘,其中第二种方法使用了递归的方式,代码相对简单,但是可能会因为递归层数过多导致栈溢出。而第一种和第三种方法则使用循环计算阶乘,代码结构清晰,而且不易出错。
评论