用循环和递归算法求 n(小于 10 的正整数) 的阶乘 n!。用c语言实现
时间: 2023-04-03 18:04:11 浏览: 158
可以使用循环或递归算法来求 n 的阶乘 n!。以下是使用循环算法的 C 语言实现代码:
#include <stdio.h>
int main() {
int n, i, factorial = 1;
printf("请输入一个小于 10 的正整数 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d! = %d\n", n, factorial);
return 0;
}
如果输入的 n 为 5,则输出结果为:
5! = 120
如果使用递归算法来求 n 的阶乘 n!,可以使用以下 C 语言实现代码:
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个小于 10 的正整数 n:");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n));
return 0;
}
同样,如果输入的 n 为 5,则输出结果为:
5! = 120
相关问题
C语言用循环和递归算法求 n(小于 10 的正整数) 的阶乘 n!。
使用循环的算法:
```
#include <stdio.h>
int main() {
int n, i, factorial = 1;
printf("请输入一个小于10的正整数:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d的阶乘为:%d\n", n, factorial);
return 0;
}
```
使用递归的算法:
```
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, result;
printf("请输入一个小于10的正整数:");
scanf("%d", &n);
result = factorial(n);
printf("%d的阶乘为:%d\n", n, result);
return 0;
}
```
这两种算法的结果是一样的,可以根据实际情况选择使用哪一种。
用循环和递归算法求 n(小于 10 的正整数) 的阶乘 n!
可以使用如下代码实现:
1. 循环算法:
```python
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input("请输入一个小于10的正整数:"))
if n >= 10:
print("输入的数字不符合要求!")
else:
print(n, "!=", factorial(n))
```
2. 递归算法:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
n = int(input("请输入一个小于10的正整数:"))
if n >= 10:
print("输入的数字不符合要求!")
else:
print(n, "!=", factorial(n))
```
请注意,递归算法效率较低,对于较大的 n,容易导致栈溢出,因此在实际使用中循环算法更为常用。