[蓝桥杯] 数位排序(C语言)

题目链接

蓝桥杯2022年第十三届省赛真题-数位排序 - C语言网

题目理解

        按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。第一次输入一个数字N,求1到数字N之间所有数字的各位之和对其进行排序,第二次输入的是各位之和顺序中从小到大的第M个数字。输出该数字的真实值。

解题思路 

        这段代码的主要思路是通过计算每个数的各位数和,并将结果存储到结构体数组中,然后对结构体数组进行排序,最后输出排序后的第m个数的原数。

具体步骤如下:

  1. 定义一个结构体number,其中包含两个成员变量ab,分别用于存储原数和各位数和。

  2. 通过scanf函数获取输入的两个整数n和m。

  3. 初始化结构体数组arr,数组大小为n+1。

  4. 第一个循环从1到n,将每个数的原数存储到arr[i].a中。

  5. 第二个循环从1到n,计算每个数的各位数和,并将结果存储到arr[i].b中。具体计算方法是通过循环取每个数的个位数,然后将个位数累加到各位数和arr[i].b中,再将该数除以10,继续取下一位数,直到该数变为0。

  6. 使用q函数对结构体数组arr进行排序,排序的依据是首先按照各位数和b进行升序排序,如果各位数和相同,则按照原数a进行升序排序。(qsort函数不会的同学用冒泡排序也是可以的,不过qsort函数不难,还是建议学习一下)

  7. 通过printf函数输出排序后的第m个数的原数arr[m].a

总结来说,这段代码的思路是通过计算每个数的各位数和,并将结果存储到结构体数组中,然后对结构体数组进行排序,最后输出排序后的第m个数的原数。这样就能找到给定范围内各位数和最小的第m个数。

完整代码

#include<stdio.h>
#include<stdlib.h>
struct number
{int a;//存储原数int b;//存储各位数和
};
int compare(const void *a, const void *b) 
{struct number num1 = *(struct number *)a;struct number num2 = *(struct number *)b;if (num1.b != num2.b)  //如果各位数和相同,则按照原数a进行升序排序{return num1.b - num2.b;} else//排序依据首先按照各位数和b进行升序排序{return num1.a - num2.a;}
}
main()
{struct number arr[1000001]={0};int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)//将原数存储到arr[i].a中{arr[i].a=i;}for(int i=1;i<=n;i++)//计算每个数的各位数和,将结果存储到arr[i].b中{int t=arr[i].a;while(t>0){arr[i].b+=t%10;t/=10;}}qsort(arr,n+1,sizeof(struct number),compare);//使用qsort函数对结构体数组arr进行排序printf("%d",arr[m].a);
}

———(如有问题,欢迎评论区提问)———

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony应用集成和固件集成中C库差异化分析

背景 OpenHarmony中&#xff0c;三方库的使用有两种方式&#xff1a; 一、固件集成 三方库经由OpenHarmony构建框架编译出的动态库或静态库&#xff0c;打包到rom中 二、应用集成 三方库经由IDE&#xff08;通过IDE中的cmake&#xff09;编译出的动态库或静态库&#xff0…

kafka学习笔记03

SpringBoot2.X项目搭建整合Kafka客户端依赖配置 用自己对应的jdk版本。 先加上我们的web依赖。 添加kafka依赖: SpringBoot2.x整合Kafka客户端adminApi单元测试 设置端口号。 新建一个kafka测试类&#xff1a; 创建一个初始化的Kafka服务。 设置kafka的名称。 测试创建kafka。…

笔记二basis

form-basis input nametitlestring字符串password密码number数字textarea多行文本radio单选checkbox多选Switch开关Slider滑块color颜色Autocomplete自动补全 file nametitleimages多图上传image单图上传file单文件上传files多文件上传 select nametitleselect单选下拉se…

C++测试程序运行的时间

最近测试算法的时间效率&#xff0c;记录一下C测试程序运行的时间模板。 在文件的头部引入包含的头文件 #include <chrono> #include <iostream>int main() {// 获取程序当前时间点auto start std::chrono::high_resolution_clock::now();/* 测试程序的代码块 *…

人工智能技术的创业机遇

人工智能&#xff08;AI&#xff09;技术的创业机遇 人工智能&#xff08;AI&#xff09;技术的快速发展为创业者提供了广阔的机会和挑战。随着AI技术的应用领域不断拓展&#xff0c;未来在AI技术方面的创业机会包括智能硬件、智能机器人、智能医疗、智能教育、智能交通、智能…

MySQL-进阶篇-基础架构:一条sql查询语句是如何执行的

摘自&#xff1a;01 | 基础架构&#xff1a;一条SQL查询语句是如何执行的&#xff1f;-MySQL实战45讲-极客时间 视频讲解&#xff1a;7分钟精通MySql中SQL执行原理_哔哩哔哩_bilibili 可结合学习&#xff0c;本文仅记录SQL语句的执行流程&#xff0c;以上内容有一些额外知识未…

学习MQ异步

1.MQ异步调用的优势 事件驱动模式&#xff1a; 优势&#xff1a; 总结&#xff1a; 2.初识MQ 核心概念以及结构&#xff1a; 常见的消息模型&#xff1a; 基本消息队列模型&#xff1a; 生产者代码&#xff1a; Testpublic void testSendMessage() throws IOException, Timeo…

C语言之_Generic用法实例(九十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(六)(含2022年和2023年)

文章目录 前言1、多比特信号A,在时钟域clk_a存在从8’d100到8’d101的变化过程中,若在时钟域clk_b直接采用D触发器采样,可能采样到数据是2、报文处理设计规格:支持的报文长度为 36-256 字节,其余长度的报文直接丢弃,接收的报文长度小于64字节时填充PAD(任意数据),使报…

快速搭建 Java 项目开发环境

1、Jdk 1.8 链接&#xff1a;https://pan.baidu.com/s/1sh8sv__dgyoYpVDac2OVKw 提取码&#xff1a;efm3 ● 环境配置: JAVA_HOME: Java安装目录 CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (记住前面有个点) Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bi…

janus搭建

一、janus介绍 Janus 官网&#xff1a;https://janus.conf.meetecho.com/index.html 参考文档&#xff1a;https://github.com/meetecho/janus-gateway Janus是一个开源的WebRTC网关&#xff0c;可用于构建实时通信应用程序。它提供了音频、视频和数据传输的功能&#xff0c;可…

政安晨:【Keras机器学习实践要点】(三十)—— 使用斯温变换器进行图像分类

目录 设置 配置超参数 准备数据 辅助函数 基于窗口的多头自注意力计算 模型训练与评估 准备 tf.data.Dataset 建立模型 在 CIFAR-100 上训练 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政…

vue3 导入excel数据

所需包 "xlsx": "^0.18.5"页面导入包 import * as XLSX from xlsx; import {genFileId, UploadProps, UploadRawFile,ElTable } from element-plus;页面 <el-upload accept".xlsx" :on-change"changeExcel" :on-exceed"ha…

[StartingPoint][Tier2]Included

LXD https://www.hackingarticles.in/lxd-privilege-escalation/ Task 1 What service is running on the target machine over UDP? &#xff08;目标机器上通过UDP运行的服务是什么&#xff1f;&#xff09; $ nmap -sU 10.129.232.86 -p 69 tftp Task 2 What class o…

DRF多表关联的序列化和反序列化

DRF多表关联的序列化和反序列化 目录 DRF多表关联的序列化和反序列化序列化定制字段source一对多的序列化 多表关联的序列化方式1&#xff1a;在表模型中定义方法方式2&#xff1a;定制返回格式SerializerMethodField方式3&#xff1a;子序列化 多表关联的反序列化反序列化保存…

Linux【实战篇】—— NFS服务搭建与配置

目录 一、介绍 1.1什么是NFS&#xff1f; 1.2客户端与服务端之间的NFS如何进行数据传输&#xff1f; 1.3RPC和NFS的启动顺序 1.4NFS服务 系统守护进程 二、安装NFS服务端 2.1安装NFS服务 2.2 创建共享目录 2.3创建共享目录首页文件 2.4关闭防火墙 2.5启动NFS服务 2.…

秋叶Stable diffusion的创世工具安装-带安装包链接

来自B站up秋葉aaaki&#xff0c;近期发布了Stable Diffusion整合包v4.7版本&#xff0c;一键在本地部署Stable Diffusion&#xff01;&#xff01; 适用于零基础想要使用AI绘画的小伙伴~本整合包支持SDXL&#xff0c;预装多种必须模型。无需安装git、python、cuda等任何内容&am…

day9 | 栈与队列 part-1 (Go) | 232 用栈实现队列、225 用队列实现栈

今日任务 栈与队列的理论基础 (介绍:代码随想录)232 用栈实现队列(题目: . - 力扣&#xff08;LeetCode&#xff09;)225 用队列实现栈 (题目: . - 力扣&#xff08;LeetCode&#xff09; ) 栈与队列的理论基础 栈 : 先进后出 队列: 后进先出 老师给的讲解:代码随想录 …

记一次centos合并excel,word,png,pdf为一个整体pdf的入坑爬坑过程(一直显示宋体问题)。

一、背景 原先已经简单实现了excel,word,png,pdf合成一个整体pdf的过程。并将它弄到docker容器中。 1、原先入坑的技术栈 php:7.4 (业务有涉及)php第三方包 setasign\Fpdi\Fpdi : 2.3.6 &#xff08;pdf合并&#xff09;libreoffice : 5.3.6.1ImageMagick: 6.9.10-68 2、…

JS-PC/MOBILE技巧--MOBILE

二、移动端网页特效 1、触屏事件 触摸事件概述 常见的触屏事件&#xff1a; 触屏touch事件说明touchstart手指触摸到一个 DOM 元素是触发touchmove手指在一个 DOM 元素上滑动时触发touchend手指从一个 DOM 元素上移开时触发 示例&#xff1a; <!DOCTYPE html> <html…