#include<stdio.h>
int main()
{
int s,n,m,i,j,g,a[11];
scanf("%d",&s);
while(s--)
{
scanf("%d%d",&n,&m);
i=1;
a[i]=1;
while(1)
{
g=1;
for(j=1;j<i;j++)
if(a[i]==a[j])
{
g=0;
break;
}
if(g&&i==m)
{
for(j=1;j<=m;j++)
printf("%d",a[j]);
printf("\n");
}
if(g&&i<m)
{
a[++i]=1;
continue;
}
while(a[i]==n)
i--;
if(i>0)
a[i]++;
else break;
}
}
return 0;
}
int main()
{
int s,n,m,i,j,g,a[11];
scanf("%d",&s);
while(s--)
{
scanf("%d%d",&n,&m);
i=1;
a[i]=1;
while(1)
{
g=1;
for(j=1;j<i;j++)
if(a[i]==a[j])
{
g=0;
break;
}
if(g&&i==m)
{
for(j=1;j<=m;j++)
printf("%d",a[j]);
printf("\n");
}
if(g&&i<m)
{
a[++i]=1;
continue;
}
while(a[i]==n)
i--;
if(i>0)
a[i]++;
else break;
}
}
return 0;
}
本文提供了一个使用C语言实现的程序,该程序能够解决给定整数范围内的排列组合问题,通过递增和回溯的方式确保每个组合的唯一性,并输出所有可能的组合结果。
542

被折叠的 条评论
为什么被折叠?



