16 条题解

  • 17
    @ 2022-12-25 9:46:09

    最简题解

    #include <iostream>
    int main()
    {
    	int n, t = 1, s = 0, x = 1;
    	std::cin >> n;
    	for (int i = 1; i <= n; i++)
    		t *= i, s += t * x, x *= -1;
    	std::cout << s;
        return 0;
    }
    

    点个赞呗

    • @ 2024-5-5 10:38:52

      请问一下

      正常不是要写using namespace std;吗? 是可以不写是吗

    • @ 2024-5-8 18:11:26
      #include<iostream>
      int main(){int n,t=1,s=0,x=1,i;std::cin>>n;for (i=1;i<=n;i++){t*=i,s+=t*x,x*=-1;}std::cout<<s;}
      
    • @ 2024-5-12 11:54:17

      啊对对对@

  • 6
    @ 2023-7-25 18:21:49

    (题解写一半不小心又双叒叕退出去了) 这道题涉及到1~n的阶乘,我们可以用一个for循环来解决,代码如下:

    a[i]=1;
    for(int j=1;j<=n;j++)
    {
        a[n]*=j;
    }
    

    还可以用递归来做,链接如下: http://oj.hetao101.com/d/training/p/34/solution/64b63e0484aa9b1d966669b8 算式规律的话大家自己找哈 代码里有 for循环版本代码:

    #include <bits/stdc++.h>
    using namespace std;
    int n,a[10],sum;
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i--)//遍历列表
        {
            a[i]=1;//思考为什么要设为一
            for(int j=1;j<=i;j++)//计算阶乘
            {
                a[i]*=j;
            }
        }
        for(int i=1;i<=n;i++)
        {
            if(i%2=0)
            {
                sum-=a[i];
            }
            else
            {
                sum+=a[i];
            }
        }
        cout<<sum<<÷;
        return 0;
    }
    

    先别忙着复制,把错改了再说(下一个也是)~ 阶乘版代码:

    #include <bits/stdc++.h>
    using namespace std;
    int x,a[9],sum;
    int j(int n)
    {
        if(n==1)
        {
            return 1;
        }
        return j(n-1)*n;
    }
    int main()
    {
        ci n>>n
        //for循环列表代码自己写(题解不可能帮你一辈子)
        for(int i=1;i<=n;i++)
        {
            if(i%2==0)
            {
                sum-=a[i];
            }
            else
            {
                sum+=a[i];
            }
        }
        cout<<sum;
        return 0;
    }
    

    好了,不喜欢上面代码的勿喷,我只是想告诉你,题解不可能总帮你解决问题,总是抄题解而知其然不知其所以然对你是没有好处的,总有一天你会发现的❤️

    • @ 2024-1-27 21:59:32

      已经发现了,好后悔老是抄题解,现在好多oj题目见过但是不会举一反三 T~T

    • @ 2024-2-24 13:34:43

      @ 加油~多做题, 多思考, 很快你就会找到丢失的解题思路的😄

  • 5
    @ 2024-5-4 14:06:54

    用了函数,百题不愁!

    AC题解

    放心品尝八

    #include <bits/stdc++.h>
    using namespace std;
    int exp(int n)
    {
        int sum = 1;
        for (int i = 1; i <= n; i++)
        {
            sum *= i;
        }
        return sum;
    }
    int main()
    {
        int n, sum = 0;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            if (i % 2 == 1)
            {
                sum += exp(i);
            }
            else
            {
                sum -= exp(i);
            }
        }
        cout << sum;
        return 0;
    }
    

    不点赞,非好汉

    点了赞,好人一生平安

    动动你的 手,一起竹篱笆

    呸!

    搞错了,再来

    动动你的 手,一起助力吧
    • 3
      @ 2024-1-31 13:10:46

      简单的作 弊方


      #include <iostream>
      using namespace std;
      int main()
      {
          int a;
          cin >> a;
          if(a == 8)
          {
              cout << "-35899";
          }
          else
          {
              cout << "-3301819";
          }
      	return 0; 
      }
      

      不能过?试试不就知道了 image

      • 2
        @ 2022-10-6 14:55:38
        #include <iostream>
        using namespace std;
        int main()
        {
            int n, x, a=0;
        	cin>>n;
        	for (int i=1;i<=n;i++)
        	{
        	    int b=1;
        	    for (int j=1;j<=i;j++) b*=j;
        		if (i%2==0) a-=b;
        		else a+=b;
        	}
        	cout<<a;
        	return 0; 
        }
        
        • 1
          @ 2024-5-30 20:36:56
          #include <iostream>
          using namespace std;
          int main()
          {
              int a,sum=0,aaa;
              cin >> a;
              for (int i=1;i<=a;i++)//初始乘积
              {
                  aaa=1;
                  for (int j=1;j<=i;j++)//阶乘
                  {
                      aaa*=j;
                  }
                  if (i%2==0)//判断是加还是减
                  {
                      sum-=aaa;
                  }
                  else
                  {
                      sum+=aaa;
                  }
              }
              cout << sum;
              return 0;
          }
          
          • -1
            @ 2024-5-9 18:43:09
            #include<bits/stdc++.h>
            using namespace std;
            int a(int n){
                int sum=1;
                for(int i=n;i>0;i--){
                    sum*=i;
                }
                return sum;
            }
            int main(){
                int n;
                cin>>n;
                int sum=0,now;
                for(int i=1;i<=n;i++){
                    now=a(i);
                    if(i%2==1) sum+=now;
                    else if(i%2==0) sum-=now;
                }
                cout<<sum;
            }
            
            • -1
              @ 2024-1-17 20:38:30
              #include<iostream>
              using namespace std;
              int main(){
                  int n,sum2=0;
                  cin>>n;
                  for(int i=1;i<=n;i++){
                      int sum=1;
                      for(int j=1;j<=i;j++){
                          sum*=j;//1~i之间所有数乘积
                      }
                      if(i%2==0){
                          sum2-=sum;
                      }
                      else{
                          sum2+=sum;
                      }
                      //若此时i为偶数,减去1~i之间所有数的乘积,反之亦然。
                  }
                  cout<<sum2;
                  return 0;
              }
              
              • -1
                @ 2023-9-1 11:43:57

                过辣!

                #include <bits/stdc++.h>
                using namespace std;
                int main()
                {
                    int n,sum=0,ans=1;
                    cin>>n;
                    for (int i=1;i<=n;i++)
                    {
                        ans=1;
                        for (int j=1;j<=i;j++)
                        {
                            ans*=j;
                        }
                        if (i%2==0)sum-=ans;
                        else sum+=ans;
                    }
                    cout<<sum;
                    return 0;
                }
                
                • -1
                  @ 2023-7-25 16:33:25
                  #include <iostream>
                  using namespace std;
                  int main(){
                  int n, a = 1, s = 0, x = 1;
                  cin >> n;
                  for (int i=1; i<=n;i++) a*= i, s += a * x, x *= -1;
                  cout << s;
                  return 0;
                  
                  • -1
                    @ 2022-5-3 10:33:44
                    #include <bits/stdc++.h> //万能头
                    using namespace std;
                    int main(){
                    	int n,s=0,a;
                    	cin >> n;
                    	for(int i = 1;i<=n;i++){
                    		a=1;//初始乘积 
                    		for(int j = 1;j<=i;j++){
                    			a*=j;//作阶乘 
                    		}
                    		if(i%2==0){//按能否被2除分类 
                    			s-=a;
                    		}else{
                    			s+=a;
                    		}
                    	}
                    	cout << s;
                        return 0;
                    }
                    
                    • -3
                      @ 2022-12-9 23:27:42

                      简单

                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                      	int n,s=1,sum=0;
                      	cin>>n;
                      	for(int i=1;i<=n;i++)
                      	{
                      		if(i%2==1)
                      		{
                      			s*=i;
                      		    sum+=s;
                      		}
                      		else
                      		{
                      			s*=i;
                      			sum-=s;
                      		}
                      	}
                      	cout<<sum;
                      	return 0;
                      }
                      
                      • -6
                        @ 2022-8-20 14:12:11
                        a[i]=a[i-1]*i;//求出该次循环的阶乘
                        if (i%2==0)//如果是2的倍数就减掉,否则加上
                        {
                            sum-=a[i];
                        }
                        else
                        {
                            sum+=a[i];
                        }
                        
                        • -6
                          @ 2022-8-13 8:32:48

                          很简单 但是我用了递归算阶乘

                          #include <iostream>
                          using namespace std;
                          int n, sum;
                          int fact(int a)
                          {
                          if (a==1)
                          {
                          return 1;
                          }
                          else
                          {
                          return a * fact(a-1);
                          }
                          }                   //以上为递归
                          int main()
                          {
                          cin >> n;
                          for (int i=1; i<=n; i++)
                          {
                          if (i%2==1)
                          {
                          sum+=fact(i); //i为奇数--加
                          }
                          else
                          {
                          sum-=fact(i); //i为偶数--减
                          }
                          }
                          cout <<sum; //别忘了输出
                          return 0;
                          }
                          
                          
                          • -6
                            @ 2022-8-12 13:30:48

                            题目要求:求1~n所有数阶乘的结果,遇见奇数阶乘相加,偶数阶乘相减。


                            总体分二步: 第一步:分别求1--n各个数的阶乘代码如下:

                            for(int i=1;i<=n;i++)
                            {
                                int ans=1;    // 初始乘积。
                                for(int j=1;j<=i;j++)
                                {
                                    ans*=j;     //每个数的阶乘。
                                }
                                *************
                            }
                            

                            第二步:判断该数是奇数还是偶数,奇数相加,偶数相减:(代码在*****处)

                            if(i%2==0)
                            {
                                sum-=ans;     //偶数阶乘相减。
                            }
                            else
                            {
                                sum+=ans;     //奇数阶乘相加。
                            }
                            
                            • -8
                              @ 2022-4-24 16:03:23

                              鼓励大家写题解,但注意题解格式。

                              给代码两端加上这个会舒服一些

                              ```cpp

                              你的代码

                              ```

                              </span>

                              这个点在键盘的左上角tab上面那个键,注意切换输入法

                              #include<iostream>
                              using namespace std;
                              int main()
                              {
                                  int n;
                                  cin>>n;//这是一个注释
                                  return 0;
                              } 
                              

                              请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                              抄袭题解一经发现直接取消成绩。

                              • 1

                              信息

                              ID
                              515
                              时间
                              1000ms
                              内存
                              128MiB
                              难度
                              3
                              标签
                              递交数
                              1026
                              已通过
                              576
                              上传者