P1147 連續自然數和

/*
題型:數段的連加連減問題
注意 起點要小於M/2; 
*/ 
#include<bits/stdc++.h>
using namespace std;
int M;
int main(){
    scanf("%d",&M);
    for(int a=1;a<=M/2;a++){//因爲a如果過了M/2那麼再加的話就超過了M 
        int sum=a;
        for(int x=1;a+x<=M;x++){
            sum+=(a+x);
            if(sum==M)printf("%d %d\n",a,a+x);//以x爲起點,x是距離 
            else if(sum>M)break;
        }
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章