下列fun函数的功能是求10的阶乘。# include \ u003Cstdio.h > long fun ( int n ) { if ( [填空1 ] ) return n * fun ( [填空2 ] ) ) eslereturn 1 ; }补全程序
时间: 2024-02-29 10:53:11 浏览: 64
程序应该填写如下:
```
#include <stdio.h>
long fun(int n) {
if (n > 1) { // 填空1:判断n是否大于1
return n * fun(n - 1); // 填空2:递归调用fun函数求解n-1的阶乘,然后乘以n
} else {
return 1; // 当n为1时,直接返回1
}
}
int main() {
printf("%ld", fun(10)); // 求10的阶乘并输出
return 0;
}
```
程序中的函数 fun(n) 用于求解 n 的阶乘,采用了递归的方式。当 n 大于 1 时,递归调用 fun 函数求解 n-1 的阶乘,然后乘以 n。当 n 为 1 时,直接返回 1。主函数中调用 fun 函数求解 10 的阶乘并输出。
相关问题
程序的功能是计算s = 1 ! + 2 ! + 3 ! + 4 ! + 5 ! +…. + n ! # include\u003Cstdio.h > long fun ( int n ) { int i ; long s = [填空1 ] ; for ( i = 1 ; i\u003C=n;i++ ) s = [填空2 ] ; return s ; } int main ( ) { long s = 0 ; int k , n ; scanf ( % d , & n ) ; for ( k = 1 ; k\u003C=n;k++ ) / /计算1 ! + 2 ! + 3 ! + ... . _ n ! s = [填空3 ] ; printf ( % ld \ , s ) ; }补全程序
程序应该填写如下:
```
#include<stdio.h>
long fun(int n) {
int i;
long s = 1; // 填空1:初始化s为1
for (i = 1; i <= n; i++)
s *= i; // 填空2:累乘i
return s;
}
int main() {
long s = 0;
int k, n;
scanf("%d", &n);
for (k = 1; k <= n; k++)
s += fun(k); // 填空3:累加每个阶乘的值
printf("%ld", s);
}
```
程序的功能是计算 s = 1! + 2! + 3! + 4! + 5! + …. + n!,其中 ! 表示阶乘。程序中的函数 fun(n) 用于计算 n 的阶乘,主函数中则通过循环计算出每个阶乘的值并累加到变量 s 中,最后输出 s 的值。
阅读全文