永发信息网

怎么用递归的思路来转换这个数组,比较费智商

答案:2  悬赏:80  手机版
解决时间 2021-07-16 21:11

int a[9]={1,2,3,4,5,6,7,8,9}
数组里的9个数如果组合成一个整数 123456789 ;
怎么应用递归的思路把数组里的九个数变化位置让它组成的整数逐渐递加,直到变成最大987654321

如:
123456789 ;
123456798 ;
123456879 ;
123456897 ;
123457689 ;
····
····
····
····
987654312 ;
987654321 ;
没有分数,所以只能等好心人 谢谢~

最佳答案
全排列问题:

#include <stdio.h>

int a[10], f[10], n;

void per( int k )
{
int i, j;
for ( i = 0; i < n; ++i ) {
if ( !f[i] ) {
f[i] = 1;
a[k] = i+1;
if ( k+1 == n ) {
for ( j = 0; j < n; ++j )
printf( "%d ", a[j] );
putchar( '\n' );
} else {
per( k + 1 );
}
f[i] = 0;
}
}
}

int main()
{
n = 9;
per( 0 );
}

这是求1~9这9个数字的全排列,结果有点多
你可以把main函数里的n改小看效果,比如n = 5
全部回答

一个排序问题,如果一定要用递归的话,建议查询一下快速排序算法

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
CAD高手进
求红色警戒3中文版 下载地址
DNF PK什么重要?
鬼影实录、看过的介绍下。
给男同学送礼物送什么好呢? 除了烟、打火机
相信自己的作文怎么写
(QQ三国)JS60新鞋报价?
网吧可以用纳米机器人下载电影吗?速度是多少?
诛仙青云四十七级怎样赚钱
你怎么来看Les?
我的NOKIAN81为什么老自动关机,哪位好心的朋
冬天要怎么预防生病呢…
简历要怎么做啊?谁能给个例子啊
先锋电热油灯DS6111 和 新品9411 那个好点 两
魅族M8和索尼x1,三星i8000哪个好点?
推荐资讯
股票方面的问题。
谁能告诉我;世界上有没有外星人。
我的QQ靓号被腾讯收回了 我要是升级会会员能
手机证书过期了,要怎么才能得到新的证书?谁
本地连接不见了…
为什么我的QQ表情一个都没有了,我说的表情就
怎么新建好友列表
失败的爱过后会幸福吗?
DNF驱魔40最好的套装
DNF50红眼1000W可以买什么装备穿+武器
欠了他太多,怎么还?
脸上有死皮怎么办哦?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?