c++编写一个递归函数fac,该函数计算n的阶乘,0的阶乘为1。 main函数中输入n个整数,计算这些整数的阶乘平均值。
时间: 2024-05-25 16:16:36 浏览: 14
#include <stdio.h>
int fac(int n) {
if (n == 0) {
return 1;
} else {
return n * fac(n-1);
}
}
int main() {
int n, sum = 0, count = 0;
double avg;
printf("请输入 n:");
scanf("%d", &n);
while (n != -1) {
sum += fac(n);
count++;
printf("请输入 n:");
scanf("%d", &n);
}
avg = (double)sum / count;
printf("阶乘平均值为:%lf\n", avg);
return 0;
}
相关问题
c++ 编写一个递归函数fac,该函数计算n的阶乘,0的阶乘为1。 main函数中输入n个整数,计算这些整数的阶乘平均值
#include <stdio.h>
int fac(int n) {
if (n == 0) {
return 1;
} else {
return n * fac(n - 1);
}
}
int main() {
int n, sum = 0;
float avg;
printf("请输入n:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += fac(arr[i]);
}
avg = (float)sum / n;
printf("这%d个整数的阶乘平均值为 %.2f", n, avg);
return 0;
}
从键盘输入一个整数n(n<10),调用递归函数fac(n),求出整数n的阶乘,返回阶乘,在主函数中输出。
好的,这是一个递归函数计算阶乘的问题,下面是实现代码:
```python
def fac(n):
if n == 0 or n == 1: # 0的阶乘和1的阶乘都为1
return 1
else:
return n * fac(n-1) # 递归调用,求出n-1的阶乘,再乘以n
# 以下是主函数代码
if __name__ == '__main__':
n = int(input("请输入一个小于10的整数n:"))
res = fac(n)
print("{0}的阶乘为:{1}".format(n, res))
```
你可以将这段代码复制到你的 Python 环境中运行,测试一下它的效果。