原题目:
输入一个数N (0<N<8),输出由1~N这N个数字组成的全排列,按从小到大的顺序。
我的代码是这样的:
# include <stdio.h>
int n,t[8];
void p(int a)
{
int i,j;
if(a>n)
{
for(i=1;i<=n;++i)
printf("%d",t[i]);
printf("\n");
}
else
{
for(i=1;i<=n;++i)
{
t[a]=i;
p(a+1);
}
}
}
int main ()
{
scanf("%d",&n);
p(1);
return 0;
}
但是输出的结果里有数字重复出现
比如 input: 2;output:11 12 21 22
但是我想要的结果是没有重复数字的,像这样:
input: 2;output:12 21
这个该怎么做呢?
请大神指教~~~~~~~~~~~~~~~~~~~~~~~~~~
输入一个数N (0<N<8),输出由1~N这N个数字组成的全排列,按从小到大的顺序。
我的代码是这样的:
# include <stdio.h>
int n,t[8];
void p(int a)
{
int i,j;
if(a>n)
{
for(i=1;i<=n;++i)
printf("%d",t[i]);
printf("\n");
}
else
{
for(i=1;i<=n;++i)
{
t[a]=i;
p(a+1);
}
}
}
int main ()
{
scanf("%d",&n);
p(1);
return 0;
}
但是输出的结果里有数字重复出现
比如 input: 2;output:11 12 21 22
但是我想要的结果是没有重复数字的,像这样:
input: 2;output:12 21
这个该怎么做呢?
请大神指教~~~~~~~~~~~~~~~~~~~~~~~~~~
