帮忙写个程序,谢谢各位,急~~~

搭子社交App 2008-02-25 03:11:50
如15=7+8
15=4+5+6
很多正整数可以由一些连续的正整数相加得到

求一程序:
可以求出任意正整数的
可以相加得到此数的连续正整数的所有序列
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltc_mouse 2008-02-25
  • 打赏
  • 举报
回复
2楼的做法确实可以得到更高的效率~ 有一点说错了:

如果N为偶数,则可以划分的条件是:X%N==N/2
星羽 2008-02-25
  • 打赏
  • 举报
回复
过儿,啥时候带上 胸罩 啊
独孤过儿 2008-02-25
  • 打赏
  • 举报
回复
楼上的,暴汗!!!
MagiSu 2008-02-25
  • 打赏
  • 举报
回复
easy

划分方法如下:
设要划分成N个连续正整数,则将X/N。
如果N为奇数,则当X%N==0时可以划分,当然前提是X%N>N/2。
如果N为偶数,则当X%N==1时可以划分,前提同上。

给分吧,找份工作也不容易,CSDN上脱掉内裤带上胸罩也是能力的体现的说……
ltc_mouse 2008-02-25
  • 打赏
  • 举报
回复
给一个低效的供参考:

#include <stdio.h>
void SumSeq(int num)
{
int i,j,k,mid,sum;
if(num<=0) return;
mid = num/2;
for(i=1; i<=mid; ++i)
{
for(sum=j=i; sum<num; sum+=++j);
if(num==sum)
{
printf("%d = %d", num, i);
for(k=i+1; k<=j; ++k) printf(" + %d", k);
printf("\n");
}
}
}
int main()
{
SumSeq( 15 );
return 0;
}

/* 运行结果:
15 = 1 + 2 + 3 + 4 + 5
15 = 4 + 5 + 6
15 = 7 + 8
*/

64,849

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧