37 条题解

  • 21
    @ 2022-8-17 20:43:36

    这一道题只需要把循环中的参数弄明白就简单许多啦~

    1. 首先是输入一个整数 n(没问题,绝对没问题!)
    2. 然后是把从 1!+ 2!+···+ n!(没问题~)
    3. 所以外循环的参数是从 1 ~ n(同样,没问题!)
    4. 然后每一个n!都是从 1 * 2 * 3 * ··· * n(绝对没问题!)
    5. 所以内循环的参数是从 1 ~ n(一样的)

    最后写出来的代码记得加上总数 sum 哦(AC过,别问了)

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, sum = 0;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            int N = 1;
            for (int j = 1; j <= i; j++) N *= j;
            sum += N;
        }
        cout << sum;
        return 0;
    }
    
    • @ 2024-5-4 14:59:23

      贴心的帮您格式化了一下(~ ̄▽ ̄)~ヾ(≧▽≦*)o


      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int n,sum=0;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              int N=1;
              for (int j=1;j<=i;j++) 
              {
      			N=N*j;
      		}
              sum+=N;
          }
          cout<<sum;
          return 0;
      }
      
      
  • 16
    @ 2023-8-28 16:27:06
    已AC
    #include <iostream>
    using namespace std;
    int main()
    {
        int n,c=0,c2=1;
        cin >> n;
        for (int i=1;i<=n;i++)
        {
            c2*=i;
            c+=c2;
        }
        cout << c;
        return 0;
    }
    先赞再看,
    否则就打你!
    ✊(o o)==🤜(#o⊿o)
    
    • 6
      @ 2022-5-20 16:26:49

      首先要明白什么是阶乘, 如: 5的阶乘为:5!=1×2×3×4×5=120 3的阶乘为:3!=1×2×3=6 则N的阶乘为:N!=1×2×......×(N-1)×N N的阶乘求法:可以从for循环让变量从1遍历到N,每次遍历将当前数字累乘到一个提前定义好的变量中即可,且该变量初始值必须为1。 核心代码:

      int ans=1;  //定义变量用来存放N的阶乘
      for(int j=1;j<=N;j++)  //从1遍历到N,不断乘当前数字,循环结束后ans中即为N的阶乘
      {
      	ans*=j;    //如N为5时,循环执行5次,ans=1*2*3*4*5
      }
      

      其次要求阶乘和,题目当中给的数据都比较小,所以不用考虑别的,只需从1开始遍历到N,每次遍历求出当前数字的阶乘并累加到sum变量中即可。

      核心代码:

      int sum=0;  //定义计算总和变量sum,用来存放阶乘和
      for(int i=1;i<=N;i++)  //要求1!+2!+...+N!,从1遍历到N(该处N与上面求阶乘的N不一样)
      {
      		//for循环求出当前数字i的阶乘ans
      		sum+=ans;  //将当前数字i的阶乘累加到sum中
      }
      

      循环结束后,sum中即为所求数字的阶乘之和。

    • 5
      @ 2023-12-10 12:28:09

      1.审题(阶乘的和(别问我经历了什么))(回车符号) 2.阶乘定义:1 * 2 * 3 * ··· * n 3.定义ans,sum。

      #include <bits/stdc++.h> 
      using namespace std;
      int main()
      {
          int n;
          int ans=1;
          int sum=0;
          cin >> n;
          for(int i = 1;i <= n;i++)
          {
              ans=i*ans;
              sum += ans;
          }
          cout << sum << endl;
          return 0;
      }
      

      给个赞吧

      简单
      
      • 3
        @ 2024-1-29 17:14:51

        也是肥常简单好吧😄 。 废话不多说,上代码!

        #include <iostream>
        using namespace std;
        int main()
        {
            int n, sum = 1, num = 0;
            cin >> n;
            for (int i = 1;i <= n;i++)
            {
                sum *= i;
                num += sum;
            }
            cout << num;
            return 0;
        }
        看完点赞,不然晚上偷你家马桶盖。
        
        • 3
          @ 2024-1-28 13:58:21
          cout << 153
          

          多么简单

        • 3
          @ 2023-5-11 13:21:06
          #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;
          }
          

          习惯化简了,看不懂的把每行代码用分号隔开,循环和判断把空格后面的加上大括号就行了。

        • 2
          @ 2024-2-6 14:24:10
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n, sum = 0;
              cin >> n;
              for (int i = 1; i <= n; i++)
              {
                  int num = 1;
                  for (int a = 1; a <= i; a++) num = num * a;
                  sum += num;
              }
              cout << sum;
              return 0;
          }
          
          • 2
            @ 2024-1-5 19:57:23
            #include<bits/stdtr1c++.h>
            using namespace std;
            int n,sum;
            int main()	
            {
                int a=1;
                cin>>n;
                for(int i=1;i<=n;i++)
                {
                    a=a*i;
                    sum+=a;
                } 
                cout<<sum;   	return 0;		
            }~~~~
            
            • 2
              @ 2023-8-24 21:19:13
              #include <iostream>
              using namespace std;
              int main()
              {
                  int n,sum=0,c;
                  cin>>n;
                  for (int i=1;i<=n;i++)
                  {
                      c=1;
                      for (int j=1;j<=i;j++)
                      {
                          c*=j;
                      }
                      sum+=c;
                  }
                  cout<<sum;
                  return 0;
              }
              
              • 2
                @ 2023-5-11 13:21:06
                #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;
                }
                

                习惯化简了,看不懂的把每行代码用分号隔开,循环和判断把空格后面的加上大括号就行了。

                • 2
                  @ 2022-10-16 11:17:01
                  #include <iostream>
                  using namespace std;
                  int main()
                  {
                  	int n,num = 1,sum = 0;
                  	cin >> n;
                  	for(int i = 1;i <= n;i++)
                  	{
                  		num *= i;
                  		sum += num;
                  	}
                  	cout << sum;
                  	return 0;
                  }
                  
                  
                  • 2

                    这其实很简单的......

                    #include <iostream>
                    usingnamespacestd;
                    int main()
                    {
                    	int n,s=1,sum=0;
                    	cin>>n;
                    	for(int i=1;i<=n;i++)
                    	{
                    		s*=i;
                    		sum+=s;
                    	}
                    	cout<<sum;
                    	return0;
                    }
                    
                    • 2
                      @ 2022-9-5 19:29:48

                      先定义求阶乘函数f,返回值“sum”,循环加上f(i),cout即可~

                      `

                      #include<bits/stdc++.h>
                      using namespace std;
                      int f(int n)
                      {
                          int sum=1;
                          for(int i=1;i<=n;i++)
                          {
                              sum*=i;
                          }
                          return sum;
                      }
                      int main()
                      {
                         int x,ans=0;
                         cin>>x;
                         for(int i=1;i<=x;i++)
                         {
                              ans+=f(i);
                         }
                         cout<<ans;
                         return 0;
                      }
                      
                      • 2
                        @ 2022-8-26 18:37:09
                        #include<bits/stdc++.h>
                        using namespace std;
                        short n;
                        int ans;
                        int main(){
                            cin>>n;
                            for(short i=1;i<=n;i++){
                                int x=1; // 0乘任何数都得0
                                for(short j=1;j<=i;j++)x*=j; // for的新写法,学废了吗(for中只有一个语句时使用)
                                ans+=x;
                            }
                            cout<<ans;
                            return 0;
                        }
                        
                        • 2
                          @ 2022-8-25 10:09:54

                          打表法//娱乐用

                          #include <cstdio>
                          
                          int a[11] ; 
                          void geter(){//打表
                              //从out.txt里复制出来
                          	a[1] = 1 ; 
                          	a[2] = 3 ; 
                          	a[3] = 9 ; 
                          	a[4] = 33 ; 
                          	a[5] = 153 ; 
                          	a[6] = 873 ; 
                          	a[7] = 5913 ; 
                          	a[8] = 46233 ; 
                          	a[9] = 409113 ; 
                          	a[10] = 4037913 ; 
                          }
                          inline int reader(){//快读(用在这题有些多余了)
                          	int it = 0, chr = getchar();
                          	while('0' > chr || chr > '9')
                          		chr = getchar();
                          	while('0' <= chr && chr <= '9')
                          		it = it * 10 + chr - '0' ,chr = getchar() ;
                          	return it ;
                          } 
                          int main(){
                          	geter() ;
                          	printf("%d",a[reader()]) ;
                          	/*
                              //打表代码部分
                              //保存于out.txt
                          	freopen("out.txt","w",stdout) ;
                              //套100层循环都没问题
                              //打表只要能出正确结果就行了
                              //这里的时间复杂度不重要
                          	for(int i = 1 ; i <= 10 ; i ++){
                          		int m = 0 ;
                          		for(int j = 1 ; j <= i ; j ++){
                          			int n = 1 ;
                          			for(int k = 1 ; k <= j ; k ++)
                          				n *= k ;
                          			m += n ;
                          		}
                          		printf("	a[%d] = %d ; \n" , i , m) ;
                          	}
                          	*/
                          	
                          	return 0 ; 
                          }
                          
                        • 1
                          @ 2023-12-24 10:48:11
                          
                          
                          #include <bits/stdc++.h>
                          using namespace std;
                          int main()
                          {
                          cout << 153;
                          }
                          
                          

                          已AC

                          • 1
                            @ 2023-11-11 21:22:23
                            #include <bits/stdc++.h>
                            using namespace std;
                            int main()
                            {
                                cout << 154;
                                //倔强
                                return 0;
                            }
                            
                            • 1
                              @ 2023-10-24 21:48:16
                              #include <iostream>
                              using namespace std;
                              int main()
                              {
                              	cout<<153;
                              	return 0;
                              }
                              (真正的题解)
                              
                              • 1
                                @ 2023-8-10 19:56:18
                                #include <bits/stdc++.h>
                                using namespace std;
                                int main()
                                {
                                    int n, sum = 0;
                                    cin >> n;
                                    for (int i = 1; i <= n; i++)
                                    {
                                        int N = 1;
                                        for (int j = 1; j <= i; j++) N *= j;
                                        sum += N;
                                    }
                                    cout << sum;
                                    return 0;
                                }
                                

                                信息

                                ID
                                11
                                时间
                                1000ms
                                内存
                                16MiB
                                难度
                                4
                                标签
                                递交数
                                2275
                                已通过
                                1086
                                上传者