37 条题解
-
1
首先要知道阶乘 也就是1 * 2 * 3 * 4 * 5 = 120 然后就双重循环就好了 (小白做法) 已AC过,可以食用。
#include <bits/stdc++.h> using namespace std; int main() { int n, sum = 0; cin >> n; for (int i = 1; i <= n; i++) { int x = 1; for (int j = 1; j <= i; j++) { x *= j; sum += N; } } cout << sum; return 0; }
-
1
#include <iostream> using namespace std; int main() { cout<<153; }
最短的。
上面这个开玩笑的,先来捋捋思路: 1,定义一个函数,用来完成!的作用: (1)定义变量sum,初始化为1(0乘任何数都得0) (2)循环n次,每次将sum乘i。 2,接下来循环累加,我就不多说了。 上代码!(已AC)
#include <bits/stdc++.h> using namespace std; int g(int n) { int sum=1; for (int i=1;i<=n;i++) sum=sum*i; return sum; } int main() { int n;cin>>n;int sum=0; for (int i=1;i<=n;i++) sum+=g(i); cout<<sum; return 0; }
习惯化简了,看不懂的把每行代码用分号隔开,循环和判断把空格后面的加上大括号就行了。
-
1
真的特别简单!我不允许有人不会!
上代码👀️
#include<iostream> using namespace std; int EM(int x)//全称:exclamation mark,中文意思:感叹号 { int sum=1;//定义sum变量存储结果 for(int i=1;i<=x;i++) sum*=i;//只因(ji)算 return sum;//好习惯(2/1) } int main() { int sum=0,n; cin>>n; for(int i=1;i<=n;i++) sum+=EM(i);//再次只因(ji)算 cout<<sum; return 0;//好习惯(2/2) }
-
1
1. 首先是输入一个整数 n(没问题,绝对没问题!) 2. 然后是把从 1!+ 2!+···+ n!(没问题\~) 3. 所以外循环的参数是从 1 \~ n(同样,没问题!) 4. 然后每一个n!都是从 1 \* 2 \* 3 \* ··· \* n(绝对没问题!) 5. 所以内循环的参数是从 1 \~ n(一样的) #include<iostream> using namespace std; int main() { int n,sum=0; cin>>n; for(int i=1;i<=n;i++) { int cnt=1; for(int j=1;j<=i;j++) { cnt*=j; } sum+=cnt; } cout<<sum; return 0; }
-
1
可以用递归或者递推 递归:
#include <bits/stdc++.h> using namespace std; int g(int n)//阶乘计算函数 { if (n==1) { return 1; } return g(n-1)*n; } int main() { int n,sum=0; cin>>n; for (int i=1;i<=n;i++) { sum+=g(i); } cout<<sum; return 0; }
递推:
#include <bits/stdc++.h> using namespace std; int main() { int n,sum=1,a[1000]={0,1}; cin>>n; for (int i=2;i<=n;i++) { a[i]=a[i-1]*i; sum+=a[i]; } cout<<sum; return 0; }
信息
- ID
- 11
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- 递交数
- 2250
- 已通过
- 1072
- 上传者