13 条题解

  • 9
    @ 2023-7-14 17:13:57
    #include <iostream>
    using namespace std;
    int main()
    {
        int a,b;
        b = 0;
        cin >> a;
        for(int i = 1; i <= a; i++)
        {
            int c = 1;
            for(int j = 1; j <= i; j++)
                c *= j;
            b += c;
        }
        cout << b;
        return 0;
    }
    

    解析~~~~(本题考的是循环嵌套)

    1.定义输入变量 a ,还有输出(统计)变量 b !

    2.写一个 for 循环,意思是变量从 1 开始,重复循环 a 次,每次变量加 1 。

    3.在第一层 for 循环里我们定义变量 c ,并在写一个循环。

    4.在第二层 for 循环里,我们每次循环都将变量 j 自增,再用 c 乘以 j ,这样我们就做到了 i 的阶乘。(即 i!)

    5.把得到的阶乘积加到变量 b 里。这样所有循环结束后 b 里就是我们要的答案了!

    6.输出,复制并......

    点赞!!!!👍

    别逼我求你😕

    • 2
      @ 2024-5-26 11:37:42
      #include <iostream>
      using namespace std;
      int main()
      {
          int n,sum = 0;
          cin >> n;
          for (int i = 1;i <= n;i++)
          {
              int m = 1;
              for (int j = 1;j <= i;j++)
              {
                  m *= j;
              }
              sum += m;
          }
          cout << sum;
      }
      

      题解来啦,让我看看谁不点赞就借鉴啦👀️

      • 2
        @ 2024-4-14 16:27:27
        #include<iostream>
        using namespace std;
        int main()
        {
            int a,ans=0;
            cin >> a;
            for(int i=1;i<=a;i++)//重复执行计算n个阶乘
            {
                int sum=1;
                for(int j=1;j<=i;j++)//计算阶乘
                {
                    sum*=j;
                }
                ans+=sum;
            }
            cout << ans;
            return 0;
        }
        
        • 1
          @ 2024-6-9 13:53:22

          题解 c++

          #include <bits/stdc++.h> //hetao4040809
          using namespace std;
          long long n,num=1,a[1005];
          int main()
          {
              cin>>n;
              a[1]=1;
              for(long long i=2;i<=n;i++)
              {
                  a[i]=a[i-1]*i;
                  num+=a[i];
              }
              cout<<num;
              return 0;
          }
          
          • 0
            @ 2024-6-7 22:33:16
            #include<iostream>
            using namespace std;
            int main()
            {
                int a;
                long long b = 0;
                cin >> a;
                for (int i = 1;i <= a;i++)
                {
                    long long sum = 1;
                    for (int j = 1;j <= i;j++)
                    {
                        sum = sum * j;
                    }
                    b += sum;
                }
                cout << b;
                return 0;
            }
            
            • 0
              @ 2024-5-26 16:26:20
              #include <bits/stdc++.h>
              using namespace std;
              int n,num = 0;
              int main()
              {
                  cin >> n;
                  for (int i = 1; i <= n; i++)
                  {
                      int sum = 1;
                      for (int j = 1; j <= i; j++)
                      {
                          sum *= j;
                      }
                      num += sum;
                  }
                  cout << num;
                  return 0;
              }
              

              主要代码

              for (int i = 1; i <= n; i++)
                  {
                      int sum = 1;//每算一个数的阶乘,sum都得回到1
                      for (int j = 1; j <= i; j++)
                      {
                          sum *= j;
                      }
                      num += sum;
                  }
                  cout << num;
              
              • 0
                @ 2024-5-24 20:11:34
                #include<iostream>
                #include<cstdio>
                #include<cmath>
                #include<iomanip>
                using namespace std;
                int main()
                {
                    int a,b,c;
                    cin >> a;
                    b = 0;
                    c = 1;
                    for (int i = 1;i <= a;i++)
                    {
                        for (int j = 1;j <= i;j++)
                        {
                            c *= j;
                        }
                        b += c;
                        c = 1;
                    }
                    cout << b;
                    return 0;
                }
                
                • 0
                  @ 2023-11-11 21:51:06
                  #include <bits/stdc++.h>
                  using namespace std;
                  int main()
                  {
                      int n;
                      long long sum=0;
                      cin>>n;
                      for(int i=1;i<=n;i++)
                      {
                          long long a=1;
                          for(int j=1;j<=i;j++)
                          {
                               a*=j;
                          }
                          sum+=a;
                      }
                      cout<<sum;
                      return 0;
                  }
                  
                  • 0
                    @ 2023-8-3 20:28:55

                    给定正整数n,求1!+2!+3!+...+n!


                    思路:

                    1!=1

                    2!=2×1=2×1!

                    3!=3×2×1=3×2!

                    故n!=n×(n-1)!

                    定义一个数组sum,用sum[i]存储i!的结果,由n!=n×(n-1)!可得sum[i]=sum[i-1]*i;这样使用单层循环就可以求出1到n每个数的阶乘,把它们加起来并输出就可以了。

                    代码如下👍

                    #include<bits/stdc++.h>
                    using namespace std;
                    int n,sum[114],ans;
                    int main(){
                        cin>>n;//输入
                        sum[0]=1;//规定0!=1
                        for(int i=1;i<=n;i++){//用循环遍历1到n
                            sum[i]=sum[i-1]*i;//求出i!
                            ans+=sum[i];//加起来就是阶乘和
                        }cout<<ans;//输出
                        return 0;
                    }
                    

                    本题n的数值不大,不用考虑时间复杂度,所以你也可以用循环嵌套因为本题考的就是循环嵌套

                    • 0
                      @ 2023-7-11 23:04:27

                      思路:

                      根据题目,我们知道这题是要求1!+2!+3!+…+n!的和。

                      做这题首先要知道n!是什么意思,n!就相当于1乘2乘3乘…乘n

                      知道这个后,这题就好做了。这里可以采用for循环嵌套解决,首先,用一个for循环枚举出1到n。然后设定一个用来储存阶乘的结果的变量sum,在用一个for循环枚举1到i计算阶乘,最后将结果加到外面的最终结果ans中

                      #include <iostream>
                      using namespace std;
                      
                      int main()
                      {
                          int n,ans = 0;
                          cin >> n;
                          for(int i = 1;i <= n;i++)
                          {
                              int sum = 1;
                              for(int j = 1;j <= i;j++)
                                  sum *= j;
                              ans += sum;
                          }
                          cout << ans;
                          return 0;
                      }
                      
                      • 0
                        @ 2023-7-11 21:49:34
                        #include <iostream>
                        using namespace std;
                        int main()
                        {
                            long long n,h=0,g=1;
                            cin>>n;
                            for (long long i=1;i<=n;i++)
                            {
                                g=1;
                                for (long long a=i;a>=1;a--)
                                    g*=a;
                                h+=g;
                            }
                            cout<<h;
                            return 0;
                        }
                        
                        • 0
                          @ 2023-7-11 11:23:35

                          解析

                          观察公式,可以将问题分解为

                          sn = 1 * 2 * 3 * ... * n

                          tn = s1 + s2 + s3 + ... + sn

                          则 tn 可以写成:

                          int ans = 0;
                          for(int i = 1; i <= n; i++)
                          {
                              ans += si;
                          }
                          

                          si 可以写成:

                          int sum = 1;
                          for (int j = 1; j <= i; j++)
                          {
                              sum *= j;
                          }
                          

                          题解

                          #include <iostream>
                          using namespace std;
                          int main()
                          {
                              int n, ans = 0;
                              cin >> n;
                              for(int i = 1; i <= n; i++)
                              {
                                  int sum = 1;
                                  for(int j = 1; j <= i; j++)
                                  {
                                      sum *= j;
                                  }
                                  ans += sum;
                              }
                              cout << ans;
                              return 0;
                          }
                          
                          
                          • -2
                            @ 2023-7-18 21:21:43

                            本题为求阶乘的和,代码如下😄

                            #include <iostream>
                            #include <iomanip>
                            using namespace std;
                            
                            int main()
                            {
                                int a, num = 0;
                                cin >> a;
                                for (int i = 1; i <= a; i++)
                                {
                                	int temp = 1;
                                    for (int j = 1; j <= i; j++)
                                    {
                                        temp *= j;
                                    }
                                    num += temp;
                                }
                                cout << num << endl;
                                return 0;
                            }
                            
                            • 1

                            信息

                            ID
                            281
                            时间
                            1000ms
                            内存
                            128MiB
                            难度
                            3
                            标签
                            递交数
                            1601
                            已通过
                            817
                            上传者