这一段c语言实现的阶乘算法
时间: 2023-03-22 11:03:41 浏览: 72
这一段提到的"C语言实现的阶乘算法"可以使用循环或者递归的方式来实现。
使用循环方式实现阶乘算法的代码如下:
```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 n = 5;
int result = factorial(n);
printf("%d的阶乘是%d\n", n, result);
return 0;
}
```
使用递归方式实现阶乘算法的代码如下:
```c
#include <stdio.h>
int factorial(int n) {
if(n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n = 5;
int result = factorial(n);
printf("%d的阶乘是%d\n", n, result);
return 0;
}
```
无论是使用循环还是递归方式实现,阶乘算法的时间复杂度都是O(n)。
相关问题
c语言实现n阶阶乘的递归算法
C语言实现n阶阶乘的递归算法如下:
```c
#include <stdio.h>
int factorial(int n)
{
if (n == 0) // 当n为0时,直接返回1,递归的终止条件
return 1;
else
return n * factorial(n - 1); // 递归调用,将问题不断简化为求(n-1)阶乘
}
int main()
{
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
printf("%d的阶乘为:%d\n", n, factorial(n));
return 0;
}
```
运行此程序,用户输入一个非负整数n,程序通过递归算法计算n的阶乘值,并输出结果。这个递归函数`factorial()`是通过将问题不断简化为求(n-1)阶乘来实现的,直到问题简化到n为0时,返回1作为终止条件。
用c语言实现阶乘累加和
以下是用 C 语言实现阶乘累加和的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, factorial = 1, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial = 1;
for (j = 1; j <= i; j++) {
factorial *= j;
}
sum += factorial;
}
printf("%d 的阶乘累加和为:%d\n", n, sum);
return 0;
}
```
首先让用户输入一个正整数,然后使用两个 for 循环,分别计算每个数的阶乘和累加和。外层循环从 1 到 n,内层循环从 1 到当前的数,计算阶乘。最后将每个数的阶乘累加到 sum 中,输出结果。