c语言实现阶乘的方法
更新时间:2023-07-11阶乘的c语言实现方法
1. for循环实现阶乘
使用for循环语句,从1开始循环,依次相乘。
#include <stdio.h>
int main() {
int n;
int factorial=1;
printf("请输入一个正整数:");
scanf("%d", &n);
for (int i=1; i <=n; i++) {
factorial *=i; //计算阶乘
}
printf("%d的阶乘为%d。\n", n, factorial);
return 0;
}
2. 递归实现阶乘
将计算阶乘拆分成多个子问题,每次递归调用函数,直到n等于1时停止递归。
#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==1) {
return 1;
} else {
return n * factorial(n - 1); //递归计算阶乘
}
}
3. while循环实现阶乘
使用while循环语句,从1开始循环,依次相乘。
#include <stdio.h>
int main() {
int n;
int factorial=1;
int i=1;
printf("请输入一个正整数:");
scanf("%d", &n);
while (i <=n) {
factorial *=i; //计算阶乘
i++;
}
printf("%d的阶乘为%d。\n", n, factorial);
return 0;
}
4. do-while循环实现阶乘
使用do-while循环语句,从1开始循环,依次相乘。
#include <stdio.h>
int main() {
int n;
int factorial=1;
int i=1;
printf("请输入一个正整数:");
scanf("%d", &n);
do {
factorial *=i; //计算阶乘
i++;
} while (i <=n);
printf("%d的阶乘为%d。\n", n, factorial);
return 0;
}
以上四种方法均可实现阶乘的计算,其中递归方法代码量较少但更易理解,而循环方法代码量较多但运行速度更快。