5 条题解
-
1
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int main() { int q; cin>>q; while(q--) { int n,sum=1,result=0; cin>>n; int w=n; while(w--) { int j=1; for(int i=1;i<=n;i=2*j+1,j++) { sum*=i; } result+=sum; sum=1; n--; } cout<<result<<endl; } return 0; } 别麻烦,就这样,对变量熟练掌握,就是简单的题。
-
1
//另一种阶乘问题 #include<stdio.h> int main() { int n,sum=0,a,p=1; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a); for(int j=1;j<=a;j++) { if(j%2==0) { for(int k=1;k<j;k=k+2) { p=p*k; } sum=sum+p; p=1; } else { for(int k=1;k<=j;k=k+2) { p=p*k; } sum=sum+p; p=1; } } printf("%d\n",sum); sum=0; } return 0; }
-
0
#include<stdio.h> long long int jishu(int m) { long long int l = 1; for (int k = 1; k <= m; k++) { if (k % 2 != 0) { //这里的m就是相当于j,利用这个函数可以求从1到m中所有奇数相乘的结果 l *= k; } } return l; } int main() { int a; scanf("%d", &a); for (int i = 1; i <= a; i++) { //测试数据的次数 long long int sum = 0; //这里采 用long long int是为了防止阶乘得到的结果过大造成超过int范围 int n; scanf("%d", &n); //每次测试的数据 for (int j = 1; j <= n; j++) { //利用循环进行遍历求1!+2!+3!+...n! sum += jishu(j); //利用函数求具体的j! } printf("%lld\n", sum); } }
-
0
#include <stdio.h> int fun1(int x) { int sum2=1; for(int i=1;i<=x;i+=2) sum2*=i; return sum2; } int fun2(int m) { int sum1=0; for(int i=1;i<=m;i++) sum1+=fun1(i); return sum1; } int main() { int n; int i=0; scanf("%d",&n); int sum[n]; for(;i<n;i++) { scanf("%d",&sum[i]); } i=0; for(int x=1;x<=n;x++) {printf("%d\n",fun2(sum[i])); i++;} return 0; }
- 1
信息
- ID
- 144
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 719
- 已通过
- 343
- 上传者