3 条题解

  • 3
    @ 2022-9-21 11:16:56

    哈喽哈喽这里是桉

    入门题的题解就给大家举几种做出本题的方法吧。

    首先我们可以知道本题是求n+1以内所有奇数的和

    那么我们就有种选择可以供参考。


    ——壹。在for循环的步长中调整

    这个方法其实就是利用自然数会一奇一偶的性质。

    我们将步长调整为2

    #include <bits/stdc++.h>
    using namespace std;
    int n,ans;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i+=2)//就是这里
    	{
    		ans+=i;
    	}
    	printf("%d",ans);
    	return 0;
    }
    

    ——贰。在循环中判断

    因为奇数对2取余是除不尽的。

    所以我们可以在循环中判断i%2是否为0。

    #include <bits/stdc++.h>
    using namespace std;
    int n,ans;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    	{
    		if(i%2==1) ans+=i;
    	}
    	printf("%d",ans);
    	return 0;
    }
    

    以上就是桉提供的本题的两种解法。

    其实吧。我思索了一下好像打表也不是不行。

    打表不是正解!别听我瞎叭叭。

    好啦就到这里了。有帮助的话记得点个赞耶。

    • 1
      @ 2023-8-7 11:06:11
      #include<iostream>
      using namespace std;
      int main(){
      	int n,sum=0;
      	cin>>n;
      	for(int i=1;i<=n;i+=2)//不断+2;
      	{
      		sum+=i;
      	}
      	cout<<sum;
      	return 0;
      }
      
      • 0
        @ 2024-3-20 16:18:52

        。等差求和中项定理:

        #include <iostream>
        using namespace std;
        int a,b; 
        int main()
        {
        	scanf("%d",&a);
        	b=(a+1)/2*(a/2+1);
        	printf("%d",b);
        	return 0;
        }
        
        • 1

        信息

        ID
        1106
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        递交数
        141
        已通过
        76
        上传者