刷题日记——16进制不进位加法(厦门大学机试)

例题

在这里插入图片描述

分析

输入

本题解题关键在于输入的两个数位数不同时候需要尾数对齐,由于是16进制输入,含有字母,需要当作字符串输入,当然输出也要字母,那么就需要我们的两个老伙计了,一个是map,另一个是自己定义char和int互转的函数,map有点麻烦,我们这里还是用自定义函数。

个位对齐
  1. 将输入的char数组转换成string,从而能够很容易的求出数组的长度
  2. 对比两个字符串的长度,取小的那个长度作为接下来循环相加所得子串target的长度
  3. 循环相加时候每个字符数组都从各自length-1的位置开始取数
循环相加
  1. 经过个位对齐,取完字符后,将两数字符转成相应数字
  2. 两个数字相加,所得之和对16取余
  3. 取余结果转换成字符不断拼入一个字符串target中
  4. 每次完成依次上述三个操作,就将当前位置为’\0’,然后再赋给string以便下一轮while计算长度(这一步的目的是让字符串长度都减去1)
  5. 重复上述4个操作,直到其中一个数组长度为0
输出结果
  1. 先找出上面两个字符数组中非空的一个输出(这个数组是正序的,且是高位,应该先输出)
  2. 再倒序输出target串(这个串是低位,倒序,需要后输出)

代码来咯

#include <cstdio>
#include <map>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;int real_num(char num){if(num<='9'&&num>='0'){return num-'0';}else if(num<='f'&&num>='a'){return num-'a'+10;}else if(num<='F'&&num>='A'){return num-'A'+10;}return -1;
}int real_char(int num){if(num<=9){return num+'0';}else{return num-10+'A';}
}int main(){char num_1[1000];char num_2[1000];while(scanf("%s%s",num_1,num_2)!=EOF){string n_1 = num_1;string n_2 = num_2;string target = "";int m_length = min(n_1.length(),n_2.length());while(n_1.length()>0&&n_2.length()>0){int n1 = real_num(num_1[n_1.length()-1]);int n2 = real_num(num_2[n_2.length()-1]);num_1[n_1.length()-1] = '\0';num_2[n_2.length()-1] = '\0';target += real_char((n1+n2)%16);n_1 = num_1;n_2 = num_2;}if(n_1.length()>0){printf("%s",n_1.c_str());}if(n_2.length()>0){printf("%s",n_2.c_str());}for(int i=m_length-1;i>=0;i--){printf("%c",target[i]);}printf("\n");}return 0;
}

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

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

相关文章

一文带你详解天池医疗数据集

医疗作为和民生健康息息相关的产业&#xff0c;通过天池大赛开放出一批有临床科研价值的数据集&#xff0c;涵盖了预防、辅诊、医学科研等主题。 与此同时&#xff0c;阿里云天池平台也积极推动产学研的共同进步&#xff0c;开源了多个本地生活领域的数据集&#xff0c;如aBea…

数据库类型转换

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 数据类型转换是指将一个数据类型的值转换为另一个数据类型的值的过程。数据类型转换通常发生在不同数据类型的比较、计算或赋值操作中。kingbase主要分为隐式转换和显示转换&#xff0c;本篇文章主要介绍这两种转换方…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

摘要&#xff1a;本文深入介绍了一个采用深度学习技术的危险物品识别系统&#xff0c;该系统融合了最新的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5等早期版本的性能。该系统在处理图像、视频、实时视频流及批量文件时&#xff0c;能够准确识别和分类各种危险物品…

设备点检管理系统的实施

设备点检管理系统的实施包括以下关键步骤&#xff1a; 确定检查对象和范围&#xff1a;根据生产需求和设备重要性&#xff0c;确定需要纳入点检系统的设备范围&#xff0c;以便有针对性地进行后续管理与监控。 制定点检计划&#xff1a;制定详细的点检计划&#xff0c;包括检…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十二)-Multi-RTT定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

NXP Auto HVBMS S32DS 参数配置卡顿解决办法:使用 EB 替代 S32DS Configuration Tools

一、背景介绍 用户在 Automotive Software Package Manager | NXP Semiconductors 可以下载 S32K344 或者是 S32K358 的 HVBMS 捆绑包。 其中包含有 IDE&#xff1a;S32DS&#xff0c;基于 S32DS 的基础软件包以及 RTD 插件包&#xff0c;MCAL 配置工具&#xff1a;EB …

【PHP+代码审计】PHP基础——流程控制

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

QT网络编程之实现TCP客户端和服务端

一.QT5.12实现TCP客户端和服务端功能 1.QT中实现TCP通信主要用到了以下类&#xff1a;QTcpServer、QTcpSocket、QHostAddress 2.基本流程&#xff1a; 使用QTcpServer来创建一个TCP服务器&#xff0c;在新的连接建立时&#xff0c;将新建立连接的socket添加到列表中&#xf…

Ubuntu 安装腾讯会议

1.官网下载 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 若不知道自己的系统架构,输入 uname -a 在命令行结果中查看系统架构信息 2.终端命令安装 cd {你的下载路径} sudo dpkg -i TencentMeeting_0300000000_3.19.0.401_x86_64_default.publi…

mysql对索引的选择简述

概述 在业务中经常会优化一些mysql的慢查询&#xff0c;通常都是使用explain去查看分析&#xff0c;检查扫描行数和索引的命中情况&#xff1b; 但是在具体索引的选择上&#xff0c;explain结果中并没有直接展示出来&#xff1b; 此时可以开启mysql的追踪优化器Trace功能&…

如何进行专利布局与专利规避

一、专利布局 WHY 专利布局是指企业或个人在科研或生产过程中&#xff0c;为了保护和利用自身的技术成果&#xff0c;通过综合产业、市场和法律等因素&#xff0c;对专利进行有机结合&#xff0c;构建严密高效的专利保护网&#xff0c;最终形成对企业或个人有利的专利组合。 …

10、Redis分布式系统之数据分区算法

Redis分布式系统之数据分区算法 1、什么是Redis分布式系统 ​ Redis分布式系统&#xff0c;官方称为Redis Cluster, Redis集群&#xff08;这个集群和前面的主从复制集群不同&#xff0c;这个集群可以理解为是多个主从复制集群所组成的集群&#xff09;&#xff0c;其实是Red…

C# RAM Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# RAM Stable Diffusion 提示词反推 Onnx Demo 介绍 github地址&#xff1a;GitHub - xinyu1205/recognize-anything: Open-source and strong foundation image recognition models. Open-source and strong foundation ima…

基于Redis实现分布式锁、限流操作(基于SpringBoot)的实现

基于Redis实现分布式锁、限流操作——基于SpringBoot实现 本文总结了一种利用Redis实现分布式锁、限流的较优雅的实现方式本文原理介绍较为通俗&#xff0c;希望能帮到有需要的人本文的demo地址&#xff1a;https://gitee.com/rederxu/lock_distributed.git 一、本文基本实现…

《MySQL数据库》day2--连接查询、子查询、union、limit、DML语句

文章目录 1.把查询结果去除重复记录 -》distinct2.连接查询2.1什么是连接查询&#xff1f;2.2连接查询的分类2.3笛卡尔积现象2.4内连接2.4.1内连接之等值连接。2.4.2内连接之非等值连接2.4.3内连接之自连接 2.5外连接2.6三张表&#xff0c;四张表怎么连接&#xff1f; 3.子查询…

SA3D:基于 NeRF 的三维场景分割方法

Paper: Cen J, Zhou Z, Fang J, et al. Segment anything in 3d with nerfs[J]. Advances in Neural Information Processing Systems, 2024, 36. Introduction: https://jumpat.github.io/SA3D/ Code: https://github.com/Jumpat/SegmentAnythingin3D SA3D 是一种用于 NeRF 表…

Java项目:48 ssm008医院门诊挂号系统+jsp(含文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本选题则旨在通过标签分类管理等方式实现 管理员&#xff1b;个人中心、药房管理、护士管理、医生管理、病人信息管理、科室信息管理、挂号管…

【每日一题】2864. 最大二进制奇数-2024.3.13

题目&#xff1a; 2864. 最大二进制奇数 给你一个 二进制 字符串 s &#xff0c;其中至少包含一个 1 。 你必须按某种方式 重新排列 字符串中的位&#xff0c;使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式&#xff0c;表示并返回可以由给定组合…

基于GIS技术的智慧农业大数据平台解决方案

1.建设背景 国务院促进大数据发展纲要 纲要提出大力推动政府信息系统和公共数据互联开放共享&#xff0c;加快政府信息平台整合&#xff0c;推动数据资源整合&#xff0c;提升治理水平。按照“五个统一”建设“大平台“&#xff0c;融合“大数据”&#xff0c;构建“大系统”落…

Leetcode-热题100-持续更新

时间不够&#xff0c;只能背诵哎&#xff0c;没办法&#xff0c;难题不写&#xff0c;简单题和中等题。 def majorityElement(nums):# 使用字典 count 来记录每个元素的出现次数count {}for num in nums:if num in count:count[num] 1else:count[num] 1length len(nums)#…