问题:回溯算法求组合。

fminhua 2002-08-03 07:26:01
这是用回溯算法求组合数
#include <iostream.h>

const int MAXN = 30;
int a[MAXN];

void comb(int m, int k)
{
int i = 0;
a[i] = 1;

do
{
if (a[i] - i <= m - k + 1)
{
if (i == k - 1)
{
for (int j=0; j<k; j++)
cout<<a[j]<<' '<<endl;
a[i]++;
continue;
}
else
{
i++;
a[i] = a[i-1] + 1;
}
}
else
{
if (i == 0)
return ;
a[--i]++;
}
}while(1);
}

void main()
{
comb(5, 3);
}

输出不是预期的结果,大家帮忙看看有什么逻辑错误。
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
QChyyyl 2002-08-03
  • 打赏
  • 举报
回复
#include "stdio.h"
void main()
{
int temp=0;

for(int i=0;i<5;i++)
for(int j=i+1;j<5;j++)
for(int k=j+1;k<5;k++)
temp++;
printf("%d",temp);
}
kbsoft 2002-08-03
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/715/715322.xml?temp=.5537226

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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