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相关推荐

  1. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  2. PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)

    PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)  http://www.patest.cn/contests/pat-b-practise/1034 ...

  3. 【题解】PAT (Basic Level) Practice (中文)

    互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...

  4. PAT basic level 答案+解题思路+难点 (个人刷题记录)

    PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...

  5. 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)

    可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...

  6. 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版

    PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...

  7. 卡拉兹(Callatz)猜想,PAT(Basic Level) Practise NO.1001

    PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半. 这样 ...

  8. PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)

    PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...

  9. PAT (Basic Level) Practice (中文)1058 选择题 (20 分)

    PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...

最新文章

  1. bzoj4830 hnoi2017 抛硬币
  2. Oracle安装步骤及PL/SQL Developer连接数据库
  3. electron 解压zip_如何将Node.js中的.zip/.rar文件解压缩到文件夹中
  4. SAP Hybris backoffice加载的zul文件和zk文件是什么东西
  5. Spring Data JPA入门
  6. ios 权限提示语_iOS工作室都在用按键v1.6.1(体验版)
  7. 【转载】如何制作python安装模块(setup.py)
  8. Struts,Hibernate,Spring经典面试题收藏(转)
  9. xgboost的原理没你想像的那么难
  10. 一个普通专科生,拿什么拯救你的未来?(精简版)
  11. plc 滑台流程图_动力滑台液压系统及PLC控制设计
  12. java中除数时刻0的异常_java中除数为0时出现的异常情况
  13. U盘中病毒,文件夹变成exe文件
  14. 基于Python实现的合同管理系统设计
  15. 【node】------node连接mongodb操作数据库------【巷子】
  16. 【taro +vue】初体验
  17. 【c】分数类型的定义 c语言分数类型加减乘除的实现
  18. 魔力宝贝服务器端文件介绍,魔力宝贝里的一些文件说明
  19. Java中文语言处理HanLP
  20. web页面开发,一个前端妹子的面试笔记,知乎上已获万赞

热门文章

  1. 推荐一个CSLab------英真时代(非广告,真心的)
  2. ubuntu下cpu以最大频率运行、查看CPU主频几种方法
  3. 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
  4. python导入自定义模块_如何Import自定义的Python模块?
  5. 分布式和微服务区别_分布式、集群、微服务到底有啥区别?
  6. 进阶01Object类
  7. 用Android Studio做一个超好玩的拼图游戏,附送超详细注释的源码
  8. 计算机学业水平测试网,学业水平测试
  9. gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
  10. Java1009_疯狂java学习笔记1009---异常