/*
题型:数段的连加连减问题
注意 起点要小于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;
}
P1147 连续自然数和
最新推荐文章于 2023-09-23 12:09:19 发布