一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5,15=4+5+

一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5,15=4+5+6,15=7+8
请写出算法,根据输入的任何一个正整数,输出符合这种要求的所有连续正整数序列,每个序列都按从小到大的顺序输出。如果没有符合要求的序列,输出“NONE”。
用Raptor程序写算法,麻烦附上思路

#include <stdlib.h>
/************************************************************************/
/*
输入正整数x
起点start = 1->start=x-1一层循环
终点end=star+1->end=x内循环,满足和sum==x则输出start到end的数据
循环结束未找到则返回none */
/************************************************************************/
int main( )
{
int x,start,end,sum;
bool bFind=false;
scanf("%d",&x);
for(start=1;start<=x-1;start++)
{
sum=start;
for(end = start+1;end<=x;end++)
{
sum+=end;
if(sum==x)
{
bFind = true;
printf("%d=",x);
for(int i=start;i<=end;i++)
{
if (i!=start)
{
printf("+");
}
printf("%d",i);
}
printf("\n");
}
}
}
if(!bFind)
{
printf("NONE\n");
}
system("pause");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答