搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 怎样枚举1-10这10个数的排列?
标题:
怎样枚举1-10这10个数的排列?
只看楼主
zenglw
等 级:
论坛游民
帖 子:38
专家分:17
注 册:2009-10-22
结帖率:
80%
楼主
已结贴
√
问题点数:20 回复次数:2
怎样枚举1-10这10个数的排列?
1-10这10个数的排列一共有10!种,选到第1种情况存入a[10]用以计算,然后再选下一种情况来计算。。。。直到10!种情况计算结束,怎样实现?由 1 2 3 4 5 6 7 8 9 10开始,最后是10 9 8 7 6 5 4 3 2 1。怎样枚举?谢谢解答。。
[
本帖最后由 zenglw 于 2010-3-17 23:13 编辑
]
搜索更多相关主题的帖子:
排列
枚举
2010-03-17 23:11
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
2
楼
得分:20
void fun(int *ptr, int m, int n)
{
int i, j, tmp;
if (m+1 < n)
{
fun(ptr, m+1, n);
for(i = m+1; i < n; i ++)
{
tmp = ptr[m];
ptr[m] = ptr[i];
ptr[i] = tmp;
fun(ptr, m+1, n);
tmp = ptr[m];
ptr[m] = ptr[i];
ptr[i] = tmp;
}
}else
{
...//在这里你可以计算你每种情况的ptr[10]
}
}
int main(void)
{
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
fun(a, 0, 10);
}
2010-03-17 23:42
zenglw
等 级:
论坛游民
帖 子:38
专家分:17
注 册:2009-10-22
第
3
楼
得分:0
回复 2楼 ldg628
嗯。。谢谢了。。
2010-03-18 10:40
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-299757-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.613887 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved