作业帮 > 综合 > 作业

C语言 求各位不重复的数字

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/13 21:51:12
C语言 求各位不重复的数字
首先输入一个n (n20),代表 1-n
输出所有由1-n组成的数,每个数只用且必须用一次.. 比如 输入 9 输出 123456789、123456798……
谢谢
这是求n个数的全排列:
#include
int s[21] = {0};
int n = 0;
void swap(int a, int b)
{
int t;
t = s[a];
s[a] = s[b];
s[b] = t;
}
void fp(int m)
{
int i;
if (m == n)
{
for (i = 0; i < n; ++i)
{
printf("%d", s[i]);
}
printf("\n");
return;
}
for (i = m; i < n; ++i)
{
swap(m, i);
fp(m + 1);
swap(i, m);
}
}
int main(void)
{
scanf("%d", &n);

for (int i = 0; i < n; ++i)
{
s[i] = i + 1;
}
fp(0);
return 0;
}