c语言计算阶乘的函数
时间: 2023-12-28 15:23:21 浏览: 256
以下是两种C语言计算阶乘的函数的例子:
1.使用for循环计算阶乘
```c
#include <stdio.h>
void factorial() {
int number;
int factorial = 1;
scanf("%d", &number);
for(int i=1; i<=number; i++) {
factorial = i*factorial;//确保即便当number=0的时候,结果也为1
}
printf("%d ", factorial);
}
int main() {
factorial();//直接调用计算阶乘的函数
return 0;
}
```
2.使用递归函数计算阶乘
```c
#include <stdio.h>
long fact(int n) {
static long pro = 1;//pro即product---乘积
pro = pro * n;
return(pro);
}
int main() {
int n, m = 1, pro;
printf("Input n:");
scanf("%d", &n);
for (; m <= n; m++) {
pro = fact(m);
}
printf("%d!=%ld\n", n, pro);
return 0;
}
```
相关问题
用c语言定义阶乘函数
在C语言中,你可以通过递归或者循环的方式定义阶乘函数。这里给出两种常见的实现方法:
**1. 递归实现:**
```c
#include <stdio.h>
// 递归定义阶乘函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况
return 1;
} else {
return n * factorial(n - 1); // 递归调用自身
}
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("结果是:%llu\n", factorial(num));
return 0;
}
```
**2. 循环实现:**
```c
#include <stdio.h>
unsigned long long factorial(int n) {
unsigned long long result = 1; // 初始化结果为1
for (int i = 2; i <= n; ++i) {
result *= i; // 依次累乘
}
return result;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("结果是:%llu\n", factorial(num));
return 0;
}
```
这两种方法都可以计算给定整数的阶乘,递归版简洁直观,但当n较大时可能会导致栈溢出;而循环版本则更高效,不会遇到这个问题。
用C语言编写阶乘函数,计算1!+2!+3!+......+10!的值。
以下是C语言编写阶乘函数,计算1!+2!+3!+......+10!的值的代码实现:
```c
#include <stdio.h>
int factorial(int n) { // 定义阶乘函数
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += factorial(i); // 调用阶乘函数并将结果累加到sum中
}
printf("1!+2!+3!+...+10!=%d\n", sum);
return 0;
}
```
阅读全文