7 条题解

  • 2
    @ 2023-9-25 21:20:39
    //另一种阶乘问题
    #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;
     } 
    
    • 1
      @ 2025-1-17 19:59:33
      #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;
      }
      别麻烦,就这样,对变量熟练掌握,就是简单的题。
      
      • 0
        @ 2025-10-9 17:43:51
        #include <stdio.h>
        long long new_factorial(int n)
         {
            long long result = 1;
            for (int i = 1; i <= n; i += 2) 
            {
                result *= i;
            }
            return result;
        }
        int main() 
        {
            int a, n;
            scanf("%d", &a);
            for (int i = 0; i < a; i++) 
            {
                scanf("%d", &n);
                long long sum = 0;
                for (int j = 1; j <= n; j++) {
                    sum += new_factorial(j);
                }
                printf("%lld\n", sum);
            }
            return 0;
        }
        
        • 0
          @ 2025-9-13 21:13:15

          又来python题解了,熟练运用python中的iterable(可迭代对象)能减少不少代码量

          def newfac(n):
              tmp = 1
              for i in range(1, n + 1, 2):
                  tmp *= i
              return tmp
          
          for _ in range(int(input())):
              n = int(input())
              print(sum(newfac(i) for i in range(1, n + 1)))
          
          • 0
            @ 2024-10-17 23:27:52

            #include <stdio.h> int main() { int i, j, sum = 0; int val; int a; scanf("%d",&a); while(a--) { scanf("%d", &val); for (i = 1; i <= val; i++) { int factorial = 1; for (j = 1; j <= i; j+=2) { factorial *= j; } sum += factorial; }

            printf("%d\n", sum); sum=0; } return 0;

            }

            • 0
              @ 2024-9-18 11:34:11
              #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
                @ 2023-9-22 21:56:27
                #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
                标签
                (无)
                递交数
                779
                已通过
                376
                上传者