Aidan 347 2021-12-13 13:36 采纳率: 50%
浏览 62
已结题

基地选拔测试的一个题 第k个数

题目描述
给定一个 n×m 的方格矩阵,每个方格内都有一个整数元素。
其中第 i 行第 j 列的方格中的元素为 i×j(行和列都从 1 开始编号)。
现在,需要你将这 n×m 个整数按照非严格单调递增的顺序一一写出。
请问,你写出的第 k 个整数是多少。
输入描述:
一行,三个整数 n,m,k。
输出描述:
一行,输出你写出的第 k 个整数。
示例1
输入
复制
2 2 2
输出
复制
2
备注:
数据范围
1≤n,m≤5×105, 1≤k≤n×m 。

是基地招新测试的题,当时时间有点赶没什么思路就直接跳过了,有帮忙给点思路的吗?

  • 写回答

2条回答 默认 最新

  • 关注

    二维数组可以用一维数组形式保存,用排序算法对数组排序后,输出a[k-1]就可以了
    代码如下:

    #include <stdio.h>
    //冒泡排序
    void bubble_sort(int a[],int n)
    {
        int i,j,t;
        for (i=0;i<n-1;i++)
        {
            for (j=0;j<n-1-i;j++)
            {
                if(a[j] > a[j+1])  //从小到大,升序
                {
                    t = a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
    }
    
    int main()
    {
        int a[5*105],i,j;
        int m,n,k;
        scanf("%d %d %d",&m,&n,&k);
        for (i=0;i<m;i++)
        {
            for (j=0;j<n;j++)
            {
                a[i*n+j] = (i+1)*(j+1);
            }
        }
        bubble_sort(a,m*n);
        printf("%d",a[k-1]);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月13日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。