网易面试题 输入一个正数n,输出所有和为n连续正数序列

来源:互联网 发布:去杭州淘宝商学院 编辑:程序博客网 时间:2024/04/26 19:13

题目:输入一个正数n,输出所有和为n连续正数序列。
例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。

#include<stdio.h>


void SumOfSequence(int n)
{
int p=1;
int q=2;
int i,j,sum;

printf("输出sum为:%d连续正数序列\n",n);
while(q<=(n+1)/2)
{
sum = 0;
for(i=p;i<=q;i++)
{
sum += i;
}
if(sum == n)
{
for(j=p;j<=q;j++)
printf("%d ",j);
printf("\n");
++p;
++q;
}
else if(sum < n)
++q;
else
++p;
}

}

int main()
{
SumOfSequence(15);
return 0;
}

运行结果:


0 0
原创粉丝点击