PAT (Basic Level) Practice1022 D进制的A+B
1022 D进制的A+B
一、题目
输入两个非负 10 进制整数 A 和 B (≤2302^{30}230 −1),输出 A+B 的 D (1<D≤10)进制数。
二、输入输出
输入格式
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式
输出 A+B 的 D 进制数。
三、样例
输入样例
123 456 8
输出样例
1103
四、题目分析
此题是一道进制转换题,可以使用递归求解。十进制的数A转换为b进制数的递归描述是:先输出A/b转换为b进制的数,再输出A对b的余数。
但是递归方法时间空间开销均较大,可以自己维护栈,转化为非递归算法:每次取余后压入栈,之后整除替换原来整数。最后依次出栈输出。
五、代码
递归算法:
#include <bits/stdc++.h> using namespace std; void exchange(long long x, long long y) {if (x >= y){exchange(x / y, y);printf("%ld", x % y);}else{printf("%ld", x);} } int main() {long long a, b;int d;cin >> a >> b >> d;exchange(a + b, d);return 0; }
非递归算法:
#include <bits/stdc++.h> using namespace std; int main() {long long a, b, c;int d;cin >> a >> b >> d;stack<int> st;c = a + b;while (c >= d){st.push(c % d);c = c / d;}cout << c;while (!st.empty()){cout << st.top();st.pop();}return 0; }
六、总结
进制转换的递归策略:
void exchange(long long x, long long y)
{if (x >= y){exchange(x / y, y);printf("%ld", x % y);}else{printf("%ld", x);}
}
PAT (Basic Level) Practice1022 D进制的A+B相关推荐
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- 【题解】PAT (Basic Level) Practice (中文)
互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...
- PAT basic level 答案+解题思路+难点 (个人刷题记录)
PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...
- 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)
可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...
- 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版
PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...
- 卡拉兹(Callatz)猜想,PAT(Basic Level) Practise NO.1001
PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半. 这样 ...
- PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)
PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
最新文章
- bzoj4830 hnoi2017 抛硬币
- Oracle安装步骤及PL/SQL Developer连接数据库
- electron 解压zip_如何将Node.js中的.zip/.rar文件解压缩到文件夹中
- SAP Hybris backoffice加载的zul文件和zk文件是什么东西
- Spring Data JPA入门
- ios 权限提示语_iOS工作室都在用按键v1.6.1(体验版)
- 【转载】如何制作python安装模块(setup.py)
- Struts,Hibernate,Spring经典面试题收藏(转)
- xgboost的原理没你想像的那么难
- 一个普通专科生,拿什么拯救你的未来?(精简版)
- plc 滑台流程图_动力滑台液压系统及PLC控制设计
- java中除数时刻0的异常_java中除数为0时出现的异常情况
- U盘中病毒,文件夹变成exe文件
- 基于Python实现的合同管理系统设计
- 【node】------node连接mongodb操作数据库------【巷子】
- 【taro +vue】初体验
- 【c】分数类型的定义 c语言分数类型加减乘除的实现
- 魔力宝贝服务器端文件介绍,魔力宝贝里的一些文件说明
- Java中文语言处理HanLP
- web页面开发,一个前端妹子的面试笔记,知乎上已获万赞
热门文章
- 推荐一个CSLab------英真时代(非广告,真心的)
- ubuntu下cpu以最大频率运行、查看CPU主频几种方法
- 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
- python导入自定义模块_如何Import自定义的Python模块?
- 分布式和微服务区别_分布式、集群、微服务到底有啥区别?
- 进阶01Object类
- 用Android Studio做一个超好玩的拼图游戏,附送超详细注释的源码
- 计算机学业水平测试网,学业水平测试
- gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
- Java1009_疯狂java学习笔记1009---异常