37 条题解

  • 20
    @ 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)
    
    • 5
      @ 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中即为所求数字的阶乘之和。

    • 4
      @ 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-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-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;
          }
          看完点赞,不然晚上偷你家马桶盖。
          
          • 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
              @ 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-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;
                        }
                        
                        • 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;
                          }
                          
                          • 1
                            @ 2023-5-25 21:12:02

                            首先要知道阶乘 也就是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
                            @ 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;
                            }
                            

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

                            • 1
                              @ 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;
                              }
                              

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

                              信息

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