1074 宇宙无敌加法器 (20 分)
地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在 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

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{string str, str1, str2;cin >> str >> str1 >> str2;reverse(str.begin(), str.end());reverse(str1.begin(), str1.end());reverse(str2.begin(), str2.end());vector<int>str3;if (str2.size() > str1.size())swap(str1, str2);str2.append(str1.size() - str2.size(), '0');//cout << str2 <<" "<< str1;if (str1 == str2){cout << '0';return 0;}int ans = 0;for (int i = 0; i < str1.size(); i++){int a = str1[i] - '0';int b = str2[i] - '0';int c = str[i] - '0';if (c == 0){c += 10;}if (a + b + ans >= c){str3.insert(str3.begin(), 1, ((a + b + ans) - c));ans = 1;}else{str3.insert(str3.begin(), 1, a + b + ans);ans = 0;}}int flag = 0;if (ans == 1)str3.insert(str3.begin(), 1, 1);for (int i = 0; i < str3.size(); i++){if (str3[i] != 0)flag = 1;if (flag == 1)cout << str3[i];}
}

C++学习之路 | PTA乙级—— 1074 宇宙无敌加法器 (20 分)(精简)相关推荐

  1. C++学习之路 | PTA乙级—— 1093 字符串A+B (20 分)(精简)

    1093 字符串A+B (20 分) 给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A ...

  2. C++学习之路 | PTA乙级——1092 最好吃的月饼 (20 分)(精简)

    1092 最好吃的月饼 (20 分). 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃货界引发一场腥风血雨-- 在这 ...

  3. C++学习之路 | PTA乙级—— 1059 C语言竞赛 (20 分)(精简)

    1059 C语言竞赛 (20 分) C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很 ...

  4. C++学习之路 | PTA乙级—— 1052 卖个萌 (20 分)(精简)

    1052 卖个萌 (20 分) 萌萌哒表情符号通常由"手"."眼"."口"三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的 ...

  5. C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)

    1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数 ...

  6. C++学习之路 | PTA乙级—— 1033 旧键盘打字 (20 分)(精简)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  7. C++学习之路 | PTA乙级—— 1032 挖掘机技术哪家强 (20 分)(精简)

    1032 挖掘机技术哪家强 (20 分) 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 ...

  8. C++学习之路 | PTA乙级—— 1023 组个最小数 (20分)(精简)

    1023 组个最小数 (20分) 给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 ...

  9. C++学习之路 | PTA乙级—— 1018 锤子剪刀布 (20分)(精简)

    1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: FigCJB.jpg 现给出两人的交锋记录,请统计双方的胜.平.负次数, ...

最新文章

  1. java hashtable排序_java中哈希表中有迭代器模式的实现,可以认为其是顺序表吗?...
  2. .NET Core下的Spring Cloud——前言和概述
  3. Bootstrap 滚动监听
  4. 2018年全国高校教师“Python编程、应用及华为大数据”培训班
  5. 【渝粤教育】广东开放大学 演绎娱乐经验管理 形成性考核 (49)
  6. 工具:SQL Server软件使用指南
  7. Axure8.0 装汉化包
  8. 声纹识别技术如何助力金融反欺诈?
  9. js继承,es3,es6的实现继承
  10. 多ubuntu主机远程桌面连接方案
  11. 解决windows自带远程桌面无法打开某些软件(模拟器等)
  12. myeclipse新建项目部署到tomcat中,点击finish键没反应
  13. android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测
  14. 比赛必备 ︱ 省力搞定三款词向量训练 + OOV词向量问题的可性方案
  15. 星驰云算GOSTAR,携手Swarm共建Web 3.0时代
  16. 安科瑞DJSF1352系列直流电能表,可通过RS485接口与微机进行数据交换,并具有电能测量、数据处理、实时监测等功能
  17. java基于springboot的游戏光盘租赁系统
  18. 科技英语翻译计算机化考试,科技英语的翻译技巧
  19. php dropdownlist,Yii2中DropDownList简单用法示例
  20. 微信外卖小程序 怎么计算与客户的距离_小程序掌单说 | 外卖O2O下半场,落后就要挨打!...

热门文章

  1. 快速理解bootstrap,bagging,boosting-三个概念
  2. 基于深度学习的场景分割算法研究综述
  3. Python中出现:AttributeError: module 'numpy' has no attribute 'dtype'问题解决
  4. “知识图谱+”系列:知识图谱+图神经网络
  5. iOS开发-多层嵌套block中如何使用__weak和__strong
  6. win10安装RabbitMQ
  7. 用busybox制作并配置根文件系统
  8. 4.1-大秦立国-ip演变
  9. 2.3.2. 进程互斥的软件实现方法
  10. linux的基础知识——会话