当前位置: 首页 > news >正文

【练习】PAT 乙 1074 宇宙无敌加法器

题目

地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表,例如“……0527”就表示最低位是7进制数、第2位是2进制数、第3位是5进制数、第4位是10进制数,等等。每一位的进制d或者是0(表示十进制)、或者是[2,9]区间内的整数。理论上这个进制表应该包含无穷多位数字,但从实际应用出发,PAT星人通常只需要记住前20位就够用了,以后各位默认为10进制。
在这样的数字系统中,即使是简单的加法运算也变得不简单。例如对应进制表“0527”,该如何计算“6203+415”呢?我们得首先计算最低位:3+5=8;因为最低位是7进制的,所以我们得到1和1个进位。第2位是:0+1+1(进位)=2;因为此位是2进制的,所以我们得到0和1个进位。第3位是:2+4+1(进位)=7;因为此位是5进制的,所以我们得到2和1个进位。第4位是:6+1(进位)=7;因为此位是10进制的,所以我们就得到7。最后我们得到:6203+415=7201。

输入格式:

输入首先在第一行给出一个N位的进制表(0 < N <=20),以回车结束。 随后两行,每行给出一个不超过N位的正的PAT数。

输出格式:

在一行中输出两个PAT数之和。

输入样例:

30527

06203

415

输出样例:

7201

来源:PAT 乙 1074 宇宙无敌加法器


思路(注意事项)

  • 注意:可能会有最后一个进位,不要漏掉!

纯代码

#include<bits/stdc++.h>
using namespace std;int main()
{string a, b, c;cin >> a >> b >> c;int n = a.size();vector<int> A(n), B(n), C(n), D;for (int i = a.size() - 1; i >= 0; i --) A[a.size() - i - 1] = a[i] - '0';for (int i = b.size() - 1; i >= 0; i --) B[b.size() - i - 1] = b[i] - '0';   for (int i = c.size() - 1; i >= 0; i --) C[c.size() - i - 1] = c[i] - '0';   int t = 0;for(int i = 0; i < n; i ++){if (B[i] + C[i] + t >= A[i] && A[i] != 0){D.push_back(B[i] + C[i] + t - A[i]);t = (B[i] + C[i] + t) / A[i];}else if (A[i] == 0 && B[i] + C[i] + t >= 10){D.push_back(B[i] + C[i] + t - 10);t = (B[i] + C[i] + t) / 10;}else{D.push_back(B[i] + C[i] + t);t = 0;}}if (t > 0) D.push_back(t);while (D.size() > 1 && D.back() == 0) D.pop_back();reverse (D.begin(), D.end());for (int i = 0; i < D.size(); i ++ ) cout << D[i];return 0; 
}

题解(加注释)

#include<bits/stdc++.h>
using namespace std;int main() {string a, b, c;cin >> a >> b >> c; // 输入三个字符串 a, b, cint n = a.size(); // 获取 a 的长度vector<int> A(n), B(n), C(n), D; // 定义数组 A, B, C 存储逆序数字,D 存储结果// 将字符串 a 逆序存储到数组 A 中for (int i = a.size() - 1; i >= 0; i--) A[a.size() - i - 1] = a[i] - '0';// 将字符串 b 逆序存储到数组 B 中for (int i = b.size() - 1; i >= 0; i--) B[b.size() - i - 1] = b[i] - '0';// 将字符串 c 逆序存储到数组 C 中for (int i = c.size() - 1; i >= 0; i--) C[c.size() - i - 1] = c[i] - '0';int t = 0; // 进位标志for (int i = 0; i < n; i++) {if (B[i] + C[i] + t >= A[i] && A[i] != 0) { // 如果 B[i] + C[i] + t >= A[i] 且 A[i] 不为 0D.push_back(B[i] + C[i] + t - A[i]); // 将差值存入结果数组 Dt = (B[i] + C[i] + t) / A[i]; // 更新进位} else if (A[i] == 0 && B[i] + C[i] + t >= 10) { //处理进制为10的情况D.push_back(B[i] + C[i] + t - 10); // 将差值存入结果数组 Dt = (B[i] + C[i] + t) / 10; // 更新进位} else {// 其他情况D.push_back(B[i] + C[i] + t); // 将和存入结果数组 Dt = 0; // 重置进位}}// 如果最后还有进位,将进位存入结果数组 Dif (t > 0) D.push_back(t);// 去掉结果中的前导零while (D.size() > 1 && D.back() == 0) D.pop_back();// 将结果数组 D 反转,恢复从高位到低位的顺序reverse(D.begin(), D.end());// 输出结果for (int i = 0; i < D.size(); i++) cout << D[i];return 0;
}

相关文章:

【练习】PAT 乙 1074 宇宙无敌加法器

题目 地球人习惯使用十进制数&#xff0c;并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里&#xff0c;每个数字的每一位都是不同进制的&#xff0c;这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表&#xff0c;例如“……0527”就表示最…...

网络防御高级02-综合实验

web页面&#xff1a; [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一&#xff0c;接口配置&#xff1a; SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…...

UITableView的复用原理

UITableView复用的基本原理是Cell复用机制&#xff0c;它通过重用已经创建的Cell来减少内存开始并提高性能&#xff0c;避免频繁创建和销毁Cell。 复用的流程 1.队列管理 UITableView维护一个可复用队列&#xff08;reuse queue&#xff09;&#xff0c;存储离屏的UITableVi…...

SQL条件分支中的大讲究

在SQL中&#xff0c;条件分支用于根据不同的条件执行不同的操作&#xff0c;适用于数据查询、数据更新以及存储过程等场景。合理使用SQL条件分支&#xff0c;可以优化数据操作流程&#xff0c;提高代码的可读性和可维护性。 目录 1. 逻辑判断的基本概念 2. CASE 语句&#xf…...

Cherry Studio:一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统

Cherry Studio&#xff1a;一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统 大模型本地化部署流程可查看文章 3分钟教你搭建属于自己的本地大模型 DeepSeek Cherry Studio地址&#xff1a;https://cherry-ai.com/download Cherry Studio 简介 Cherry S…...

工业相机,镜头的选型及实战

工业相机和镜头的选型是机器视觉系统中的关键步骤&#xff0c;选型不当可能导致成像质量差或系统性能不达标。&#xff08;用于个人的学习和记录&#xff09; 一、工业相机选型方法 确定分辨率 分辨率需求&#xff1a;根据被测物体的尺寸和检测精度要求计算所需分辨率。 公式…...

C++模板学习从专家到入门:关键字typename与class

文章目录 共同点typename特性class特性 共同点 在定义类模板或者函数模板时&#xff0c;typename 和 class 关键字都可以用于指定模板参数中的类型。 template <class T> template <typename T>typename特性 C 允许在类内定义类型别名&#xff0c;且其使用方法与…...

BFS算法篇——FloodFill问题的高效解决之道(下)

文章目录 前言一. 图像渲染1.1 题目链接&#xff1a;https://leetcode.cn/problems/flood-fill/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 二. 岛屿数量2.1 题目链接&#xff1a;https://leetcode.cn/problems/number-of-islands…...

Android性能优化

Android性能优化 如何优化一个包含大量图片加载的Android应用&#xff0c;以提高性能和用户体验&#xff1f; 优化一个包含大量图片加载的Android应用&#xff0c;可以从以下几个方面入手&#xff0c;以提高性能和用户体验&#xff1a; 选择合适的图片加载库 使用成熟的图片…...

1、http介绍

一、HTTP 和 HTTPS 简介 HTTP&#xff08;HyperText Transfer Protocol&#xff09; 用途&#xff1a;用于网页数据传输&#xff08;不加密&#xff09;。协议特性&#xff1a;以明文形式传输数据&#xff0c;默认端口 80&#xff0c;无身份验证和完整性保护。典型场景&#xf…...

2.6 寒假训练营补题

C Tokitsukaze and Balance String (hard) 题目描述 本题为《Tokitsukaze and Balance String (easy)》的困难版本&#xff0c;两题的唯一区别在于 n n n 的范围。 一个字符串是平衡的&#xff0c;当且仅当字符串中 "01" 连续子串的个数与 "10" 连续子…...

kafka生产者之发送模式与ACK

文章目录 Kafka的发送模式Kafka的ack机制发送模式与ack的关联重试次数总结 在Kafka中&#xff0c;发送模式与ack机制紧密相关&#xff0c;它们共同影响着消息发送的可靠性和性能。 Kafka的发送模式 发后即忘&#xff08;Fire and Forget&#xff09;&#xff1a;生产者发送消息…...

笔记:蓝桥杯python搜索(3-2)——DFS剪支和记忆化搜索

目录 一、DFS剪支 二、例题 P2942 数字王国之军训军队 P3075 特殊的多边形 三、记忆化搜索 四、例题 例题 P3820 混境之地 P216 地宫取宝 一、DFS剪支 在搜索过程中&#xff0c;如果需要完全遍历所有情况可能需要很多时间在搜索到某种状态时&#xff0c;根据当前状态判断…...

ChatBox+硅基流动Deepseek_R1开源API 满血(671B)部署教程,全程干货无废话

DeepSeek开源深度推理模型火爆发布&#xff0c;网络流量过大经常导致服务器崩溃&#xff0c;所以一般有两种方法解决这个问题 如果你的硬件支持&#xff0c;或者保密文档&#xff0c;保密单位&#xff0c;那么可以部署在本地端。但是再好的电脑也不能让DS满血复活&#xff0c;…...

35~37.ppt

目录 35.张秘书-《会计行业中长期人才发展规划》 题目​ 解析 36.颐和园公园&#xff08;25张PPT) 题目​ 解析 37.颐和园公园&#xff08;22张PPT) 题目 解析 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 插入自定义的幻灯片&#xff1a;新建幻灯片→重用…...

畅快使用DeepSeek-R1的方法

腾讯云API接入Cherry Studio简明指南-畅快使用DeepSeek-R1 注意&#xff1a;腾讯云API针对deepseek限时免费&#xff08;后续即使收费也较为便宜&#xff0c;可以作为长期使用的方法&#xff09;&#xff0c;并且比华为的API要快不少。 一、获取腾讯云API密钥 登录并进入腾讯…...

【人工智能】Python中的序列到序列(Seq2Seq)模型:实现机器翻译

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 序列到序列(Seq2Seq)模型是自然语言处理(NLP)中一项核心技术,广泛应用于机器翻译、语音识别、文本摘要等任务。本文深入探讨Seq2Seq模…...

【算法】动态规划专题⑥ —— 完全背包问题 python

目录 前置知识进入正题模板 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 完全背包问题是动态规划中的一种经典问题&#xff0c;它与0-1背包问题相似&#xff0c;但有一个关键的区别&#xff1a;在完全背包问题中&#xff0c;每种物品都有无限的数量可用。…...

记一次基于manifest v3开发谷歌插件

背景 头疼在国际化功能普遍的前端项目中&#xff0c;如果你在处理或者在某一块功能上新增一些需求的时候&#xff0c;在没有国际化功能的页面中&#xff0c;我们随便复制一些文本&#xff0c;然后在vs code中全局搜索&#xff0c;很快就可以找到所要更改的代码文件在哪里&…...

C# OpenCvSharp 部署MOWA:多合一图像扭曲模型

目录 说明 效果 项目 代码 下载 参考 C# OpenCvSharp 部署MOWA&#xff1a;多合一图像扭曲模型 说明 算法模型的paper名称是《MOWA: Multiple-in-One Image Warping Model》 ariv链接 https://arxiv.org/pdf/2404.10716 效果 Stitched Image 翻译成中文意思是&…...

本地部署DeepSeek-R1模型(新手保姆教程)

背景 最近deepseek太火了&#xff0c;无数的媒体都在报道&#xff0c;很多人争相着想本地部署试验一下。本文就简单教学一下&#xff0c;怎么本地部署。 首先大家要知道&#xff0c;使用deepseek有三种方式&#xff1a; 1.网页端或者是手机app直接使用 2.使用代码调用API …...

神经网络常见激活函数 5-PReLU函数

文章目录 PReLU函数导函数函数和导函数图像优缺点pytorch中的PReLU函数tensorflow 中的PReLU函数 PReLU 参数化修正线性单元:Parametric ReLU 函数导函数 PReLU函数 P R e L U { x x > 0 α x x < 0 ( α 是可训练参数 ) \rm PReLU \left\{ \begin{array}{} x \qua…...

2025我的第二次社招,写在春招之季

先说一个好消息&#xff0c;C那些事 4w star了&#xff01; 前面断更了一个月&#xff0c;本篇文章就可以看到原因&#xff0c;哈哈。 大家好&#xff0c;我叫光城&#xff0c;腾讯实习转正做后端开发&#xff0c;后去小公司做数据库内核&#xff0c;经过这几年的成长与积累&am…...

Visual Studio Code中文出现黄色框子的解决办法

Visual Studio Code中文出现黄色框子的解决办法 一、vsCode中文出现黄色框子-如图二、解决办法 一、vsCode中文出现黄色框子-如图 二、解决办法 点击 “文件”点击 “首选项”点击 “设置” 搜索框直接搜索unicode选择“文本编辑器”&#xff0c;往下滑动&#xff0c;找到“Un…...

threejs开源代码之-旋转的彩色立方体

效果&#xff1a;旋转的彩色立方体 效果描述&#xff1a; 一个立方体在场景中旋转。立方体的每个面有不同的颜色。使用自定义着色器为立方体添加动态的光影效果。 代码实现 import * as THREE from three; import { OrbitControls } from three/examples/jsm/controls/OrbitC…...

visual studio 2008的试用版评估期已结束的解决办法

visual studio 2008试用期过了后&#xff0c;再次启动时提示&#xff1a;visual studio的试用版评估期已结束。 需要的工具&#xff1a;补丁文件PatchVS2008.exe 解决办法&#xff1a; 1.在“控制面板”-“添加删除程序”中选择visual studio 2008&#xff0c;点击“更改/卸载”…...

解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

Http和Socks的区别?

HTTP 和 SOCKS 的区别 HTTP 和 SOCKS 都是用于网络通信的协议&#xff0c;但它们在工作原理、应用场景和实现方式上有显著的区别。以下是详细的对比和说明。 一、HTTP 协议 1. 定义 HTTP&#xff08;HyperText Transfer Protocol&#xff09;是用于传输超文本数据的应用层协…...

VC播放mp3的方法

1、使用msi库 #include <mmsystem.h> #pragma comment(lib,"winmm.lib") .......//打开文件MCI_OPEN_PARMS mciOpen; mciOpen.lpstrDeviceType _T("mpegvideo"); mciOpen.lpstrElementName _T("c://1.mp3"); MCIERROR mciError mci…...

Docker 部署 verdaccio 搭建 npm 私服

一、镜像获取 # 获取 verdaccio 镜像 docker pull verdaccio/verdaccio 二、修改配置文件 cd /wwwroot/opt/docker/verdaccio/conf vim config.yaml config.yaml 配置文件如下&#xff0c;可以根据自己的需要进行修改 # # This is the default configuration file. It all…...