数列中任意项求和的问题

sharsma 2005-07-01 02:03:46
设一递增数列为n+1,n+2,n+3,n+4,n+5,……,n+m(n、m均为整数),问其中x个项相加之和为y的组合分别是什么?

例如数列是1,2,3,……,10 其中五项相加等于30的组合有:1,2,8,9,10;1,3,7,9,10;…………
...全文
205 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharsma 2005-07-03
  • 打赏
  • 举报
回复
galois_godel,大哥,给个中文的解释行不?
galois_godel 2005-07-02
  • 打赏
  • 举报
回复
findans(int s,int n,int i)
{
if(s==y && x==n){
store();
return;
}
if(x>=n)return;
if(s>=y)return;
if(i>=len)return;
findans(s,n,i+1);
findans(s+a[i],n+1,i+1);
}

sharsma 2005-07-02
  • 打赏
  • 举报
回复
可以给个具体的算法么?
baryjim 2005-07-02
  • 打赏
  • 举报
回复
搜加回溯的同时,可以剪枝,这个剪枝范围很大,所以算法应该很快得出结果
sharsma 2005-07-01
  • 打赏
  • 举报
回复
恩,的确只能搜索所有组合,,但是多少项相加是不确定的,这个应该怎么办?
Zephyrzzz 2005-07-01
  • 打赏
  • 举报
回复
组合能构造出来吗?
mathe 2005-07-01
  • 打赏
  • 举报
回复
如果要求出所有的组合,那本来就只能搜索所有的组合.
NowCan 2005-07-01
  • 打赏
  • 举报
回复
没想到好办法。只知道硬搜加回溯

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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