下面程序的功能是计算:s=0!+1!+2!+3!+……+n!,请填空 #include<iostream> long f(int n) {int I; long s; s= 1; for(I=1;I<n;I++) s= (5) ; return(s); } main() {int k,n; long s; cin>>n; s= (6) ; for(k=0;k<=n;k++) s= (7) ; cout<<s; }
时间: 2023-12-04 14:02:11 浏览: 96
以下是计算s=0!+1!+2!+3!+……+n!的C++程序:
```c++
#include<iostream>
using namespace std;
long f(int n) {
int I;
long s;
s = 1;
for(I=1;I<=n;I++) // (5) 求n的阶乘
s = s * I;
return s;
}
int main() {
int k,n;
long s;
cin >> n;
s = 0;
for(k=0;k<=n;k++) // (7) 累加0!到n!的和
s = s + f(k);
cout << s;
return 0;
}
```
程序中的(5)是求n的阶乘,使用了for循环来计算n的阶乘。注意,循环变量I从1开始,到n结束,循环条件是I<=n。
程序中的(7)是累加0!到n!的和,使用了for循环来计算累加和。注意,循环变量k从0开始,到n结束,循环条件是k<=n。在每次循环中,调用函数f(k)求k的阶乘,并将其加入到累加和s中。最后输出s的值即可得到结果。
相关问题
编程实现 1!+ 2!+ 3! + ... + 8! 分数 5 作者 欧阳湘江 单位 湖南工程学院 给定源程序的功能是:计算s=1!+2!+……+8!。 请在程序给定填空处填入正确的内容,使程序得出正确的结果。
以下是代码实现:
```c
#include<stdio.h>
int main()
{
int i,t,fact=1,s=0;
for(i=1;i<=8;i++)
{
fact=fact*i;
s=s+fact;
}
printf("1!+2!+3!+...+8!=%d\n",s);
return 0;
}
```
输出结果为:1!+2!+3!+...+8!= 4037913
填空处应该填入的是 `fact`。因为在每次循环中,`fact` 的值都被更新为当前循环变量的阶乘,累加到 `s` 中,最终得到的结果即为 1!+2!+3!+...+8! 的和。
程序的功能是计算s = 1 ! + 2 ! + 3 ! + 4 ! + 5 ! +…. + n ! # include<stdio.h > long fun ( int n ) { int i ; long s = [填空1 ] ; for ( i = 1 ; i<=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);
return 0;
}
```
程序的功能是计算 s = 1! + 2! + 3! + 4! + 5! + …. + n!,其中 ! 表示阶乘。程序中的函数 fun(n) 用于计算 n 的阶乘,主函数中则通过循环计算出每个阶乘的值并累加到变量 s 中,最后输出 s 的值。
阅读全文