13 条题解
-
9
#include <iostream> using namespace std; int main() { int a,b; b = 0; cin >> a; for(int i = 1; i <= a; i++) { int c = 1; for(int j = 1; j <= i; j++) c *= j; b += c; } cout << b; return 0; }
解析~~~~(本题考的是循环嵌套)
1.定义输入变量 a ,还有输出(统计)变量 b !
2.写一个 for 循环,意思是变量从 1 开始,重复循环 a 次,每次变量加 1 。
3.在第一层 for 循环里我们定义变量 c ,并在写一个循环。
4.在第二层 for 循环里,我们每次循环都将变量 j 自增,再用 c 乘以 j ,这样我们就做到了 i 的阶乘。(即 i!)
5.把得到的阶乘积加到变量 b 里。这样所有循环结束后 b 里就是我们要的答案了!
6.输出,复制并......
点赞!!!!👍
别逼我求你😕
-
0
#include <bits/stdc++.h> using namespace std; int n,num = 0; int main() { cin >> n; for (int i = 1; i <= n; i++) { int sum = 1; for (int j = 1; j <= i; j++) { sum *= j; } num += sum; } cout << num; return 0; }
主要代码
for (int i = 1; i <= n; i++) { int sum = 1;//每算一个数的阶乘,sum都得回到1 for (int j = 1; j <= i; j++) { sum *= j; } num += sum; } cout << num;
-
0
给定正整数n,求1!+2!+3!+...+n!
思路:
1!=1
2!=2×1=2×1!
3!=3×2×1=3×2!
故n!=n×(n-1)!
定义一个数组
sum
,用sum[i]
存储i!的结果,由n!=n×(n-1)!可得sum[i]=sum[i-1]*i
;这样使用单层循环就可以求出1到n每个数的阶乘,把它们加起来并输出就可以了。代码如下👍
#include<bits/stdc++.h> using namespace std; int n,sum[114],ans; int main(){ cin>>n;//输入 sum[0]=1;//规定0!=1 for(int i=1;i<=n;i++){//用循环遍历1到n sum[i]=sum[i-1]*i;//求出i! ans+=sum[i];//加起来就是阶乘和 }cout<<ans;//输出 return 0; }
本题n的数值不大,不用考虑时间复杂度,所以你也可以用循环嵌套
因为本题考的就是循环嵌套 -
0
思路:
根据题目,我们知道这题是要求1!+2!+3!+…+n!的和。
做这题首先要知道n!是什么意思,n!就相当于1乘2乘3乘…乘n
知道这个后,这题就好做了。这里可以采用for循环嵌套解决,首先,用一个for循环枚举出1到n。然后设定一个用来储存阶乘的结果的变量sum,在用一个for循环枚举1到i计算阶乘,最后将结果加到外面的最终结果ans中
#include <iostream> using namespace std; int main() { int n,ans = 0; cin >> n; for(int i = 1;i <= n;i++) { int sum = 1; for(int j = 1;j <= i;j++) sum *= j; ans += sum; } cout << ans; return 0; }
-
0
解析
观察公式,可以将问题分解为
sn = 1 * 2 * 3 * ... * n
tn = s1 + s2 + s3 + ... + sn
则 tn 可以写成:
int ans = 0; for(int i = 1; i <= n; i++) { ans += si; }
si 可以写成:
int sum = 1; for (int j = 1; j <= i; j++) { sum *= j; }
题解
#include <iostream> using namespace std; int main() { int n, ans = 0; cin >> n; for(int i = 1; i <= n; i++) { int sum = 1; for(int j = 1; j <= i; j++) { sum *= j; } ans += sum; } cout << ans; return 0; }
- 1
信息
- ID
- 281
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 1601
- 已通过
- 817
- 上传者