10 条题解

  • 2
    @ 2024-11-13 13:49:29

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

    • 1

      思路

      等差数列求和公式(sns_n 表示前 nn 项和,aia_i 表示第 ii 项,nn 表示项数):

      sn=n(a1+an)2s_n= \frac{n (a_1+a_n)}{2}

      code

      #include<bits/stdc++.h>
      using namespace std;
      int n;
      int main(){
      	cin>>n;
      	cout<<((n*(n+1))>>1);
      }
      

      tips:XXX>>1等于XXX/2,且效率更高。

      • 1

        题目解析 本题相当于给了一个等差数列

        {an}\{a_n\}

        首项a1=1,公差d=1首项a_1=1,公差d=1

        易知

        an=a1+(n1)d=na_n=a_1+(n-1)d=n

        因此由等差数列前n项和公式

        Sn=n(a1+an)2=n(n+1)2S_n=\frac{n(a_1+a_n)}{2}=\frac{n(n+1)}{2}

        得到下面的代码🎉️

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

        其中/2可以换成>>1

        因为上面的n*(n+1)一定为偶数,而偶数向右移一位与除以2相等

        此题便迎刃而解🎉️ 循环结构?根本不用的好吧

        循环结构代码:

        #include<bits/stdc++.h>
        using namespace std;
        int n,ans=0;
        int main(){
        	cin>>n;
        	for(int i=1;i<=n;i++) ans+=i;
        	cout<<ans<<endl;
        	return 0;
        }
        
        • 1
          @ 2024-1-7 13:29:54

          #include<bits/stdc++.h> using namespace std; int main() { int n,i,sum=0; cin>>n; for(i=1;i<=n;i++) { sum+=i; } cout<<sum; return 0; } 补个循环的(桃桃探头)

          • 0
            @ 2024-11-23 12:47:42

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

            • 0
              @ 2024-11-12 14:02:08

              #include<bits/stdc++.h> using namespace std; int main() { int a,s=0,i=0; cin>>a; while(i<=a) { s=i+s; i++; } cout<<s; return 0; }

              • 0
                @ 2024-11-12 13:57:04

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

                • 0
                  @ 2024-11-10 13:39:04

                  #include <bits/stdc++.h> using namespace std;

                  int main()

                  { int n,i,s=0; cin>>n;

                  for(i=0;i<=n;i++)
                  {
                  	s=s+i;
                  }
                  cout<<s;
                  
                  return 0;
                  

                  }

                  • 0

                    不用循环结构也能秒 #include<bits/stdc++.h> using namespace std; int main() { int n,s; cin>>n; s=n*(n+1)/2; cout<<s<<endl; return 0; }

                  • -4
                    @ 2024-11-11 17:36:12

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

                    • 1

                    信息

                    ID
                    44
                    时间
                    1000ms
                    内存
                    256MiB
                    难度
                    1
                    标签
                    递交数
                    159
                    已通过
                    114
                    上传者