首页 > 代码库 > 组合(1-m中选n个数)
组合(1-m中选n个数)
#include<stdio.h>
int a[100],b[100]={0},m,n;
bool p(int k)//定义一个bool类型函数 ,用来判断
{
if(b[k]==1)
{
return false;
}
return true;
}
void s(int k)//定义一个函数,用来回溯;
{
for(int i=a[k-1];i<=m;i++)
{
a[k]=i;//将i填进数组里
if(p(i))// 判定i是否用过
{
b[i]=1;//标记
if(k==n)//如果填完了
{
for(int j=1;j<=n;j++)//输出
{
printf("%d ",a[j]);
}
printf("\n");
}
else
{
s(k+1);//调用自己
}
b[i]=0;//取消标记
}
}
a[k]=0;//归零
}
int main()
{
scanf("%d%d",&m,&n);//输入m,n;
for(int i=1;i<=m;i++)//定义第一个数
{
a[1]=i;
b[i]=1;
s(2);
}
return 0;
}
hahahahahahaha
组合(1-m中选n个数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。