Description
78这个数可以表示为连续正整数的和,1+2+3+…+12,18+19+20+21,25+26+27。
Input
输入一个正整数 n(<=10000)
Output
输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。
对于多种表示法,a小的方案先输出。
Sample Input 1
78
Sample Output 1
1 12
18 21
25 27
Hint
HINT:时间限制:1.0s 内存限制:256.0MB
直接枚举吧,不想别的了
#include<stdio.h>
int main()
{
int i,sum,x,j,n;
scanf("%d",&n);
for(i=1;i<n;i++)
{
sum=0; //每次都初始化sum的值
x=i; //记住每次最开始的值
j=i; //从i开始计算
while(sum<n)
{
sum+=j;
j++;
}
if(sum==n)
{
printf("%d %d\n",x,j-1);
}
}
return 0;
}