荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: bakey (大苹果), 信区: Program
标 题: Re: 问个问题
发信站: 荔园晨风BBS站 (Fri Jul 7 21:26:37 2006), 站内
给个例子你参考一下,输入要排列的个数,输出他们的全排列
# include <stdio.h>
# include <stdlib.h>
const int maxn = 10;
bool used[maxn];
int n,flag[maxn];
int DFS(int d)
{
int i;
if(d==n){
for(i=0;i<n;i++)
printf("%d",flag[i]); //得到一个解,输出
printf("\n");
return 0;
}
for(i=0;i<n;i++)
if(used[i]==0) {
used[i]=1;//设使用位
flag[d]=i+1;//输入数据,可以根据自己的需要输入元素
DFS(d+1);//递归加深
used[i]=0;//回复现场
}
return 0;
}
int main()
{
scanf("%d",&n);
if (n <= 0) {
printf("error\n");
exit(0);
}
else
DFS(0);
//system("PAUSE");
return 0;
}
【 在 bakey (大苹果) 的大作中提到: 】
: 递归
: 【 在 John (严以律己,宽以待人) 的大作中提到: 】
: : 比如现在有四个整数
: : 要对它们进行全排列
: : 程序该怎么写比较好?
--
无签名档咖~~~
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.111.149]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店