洛谷 P1147 连续自然数和

洛谷 P1147 连续自然数和

看到dalao们的各种高深方法,本蒟蒻一个都没看懂。。。 于是,我来发一篇蒟蒻友好型的简单题解

#include<bits/stdc++.h>
using namespace std;
int n,sum=0,ans=0;
int main()
{
    cin>>n;
    int j=1;    //j为前端点
    for(int i=1;i<n;i++)//枚举1~n-1加入sum,n本身不属于答案所以不再枚举
    {
        sum+=i;//sum不断增加 
        if(sum==n) cout<<j<<" "<<i<<endl;//满足答案则输出
        while(sum>n) sum-=j,j+=1;        //sum大于n则sum不断减j直到sum<=n
        if(sum==n) cout<<j<<" "<<i<<endl;//sum可能等于n所以再次判断
    }
    return 0;
}

 

 
posted @ 2018-06-28 11:40  Christopher_Yan  阅读(163)  评论(0编辑  收藏  举报