C语言用程序排列组合数字

来源:百度知道 编辑:UC知道 时间:2024/09/25 10:36:21
列出所有由0123456789组成的十位数字(包括0开头的)
,所用数字不能重复

例:0123456789、1234567890

要源代码!

#include <iostream.h>//实现数据的全排序
void swap(int *a,int x,int y)//数据交换
{
int temp = a[x];
a[x] = a[y];
a[y] = temp;
}
void Perm(int *a,int k,int m)//实现全排序
{
if ( k ==m)
{
for (int i=0;i<=m;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
else
{
for (int j =k;j<=m;j++)
{
swap(a,k,j);
Perm(a,k+1,m);
swap(a,k,j);
}
}
}
int main()
{
int a[10];
for (int i=0;i<10;i++)
{
a[i] = i;
}
Perm(a,0,9);

return 0;
}
//怎么和上一道是一样的呢,而且还简单一些。你可以把数字弄少点来检查我的程序是否正确