| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:数组排列 但搞不懂怎么输出
只看楼主 加入收藏
t17
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-9-8
结帖率:25%
收藏
 问题点数:0 回复次数:1 
数组排列 但搞不懂怎么输出
Description
2022年6月17日下午,ywh 结束了他的电路考试,他觉得自己发挥得非常好,所以他的长辈 x-x 决定和他一起玩个小游戏,如果他能成功通关,那么 x-x 会奖励 ywh 最喜欢吸的速溶柠檬粉。小游戏规则如下: 给 ywh n 个互不相同的数字,经过随意排列后(每个数字都需要参与排列),他需要快速地回答第 k 大的数,可是 ywh 在经过高数和电路考试后彻底失智,所以他求助了他的好朋友,也就是屏幕前的你,请你帮助他赢得他最爱的奖励!

(回答成功便有机会和 ywh 一起吸他最爱的速溶柠檬粉!)(是真的!)

注:第 k 大指的是从大到小排第 k

Input
第一行给出 n、k 。(1≤n≤9,  1≤k≤n!)

第二行给出一长度为 n 的数组 a , (1≤ai≤9) 且各不相同。

Output
将 a 数组中的数任意组合,求其中第 k 大的数。(题目保证能找到第 k 大的数)

Samples
input
5 1
1 2 3 4 5
output
54321
搜索更多相关主题的帖子: 输出 相同 排列 Output 数组 
2023-09-17 14:14
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1694
专家分:4282
注 册:2007-12-27
收藏
得分:0 
供参考:
程序代码:
#include <stdio.h>
int a[10], b[10], N, K, k;
void pailie(int n)
{
    int i, j;
    for (i = 0; i < N; i++)
    {
        a[N - n] = b[i];
        for (j = 0; j < N - n; j++)
            if (b[i] == a[j])    break;
        if (j < N - n)
            continue;
        if (n > 1)
            pailie(n - 1);
        else if (++k == K)
        {
            for (j = 0; j < N; j++)printf("%d", a[j]);
            printf("\n");
        }
    }

}
int main()
{
    int i, j, t;
    scanf("%d%d", &N, &K);
    for (i = 0; i < N; i++)
        scanf("%d", &b[i]);
    for (i = 0; i < N - 1; i++)
        for (j = i + 1; j < N; j++)
            if (b[i] < b[j])
            {
                t = b[i]; b[i] = b[j]; b[j] = t;
            }
    pailie(N);
    return 0;
}

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-09-17 19:59
快速回复:数组排列 但搞不懂怎么输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054085 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved