查看原文
其他

Python数据结构与算法刷题(4)——D进制的A+B

2018-01-30 王大伟 Python爱好者社区

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


前言


前文传送门:

Python数据结构与算法刷题(1)——害死人不偿命的(3n+1)猜想

Python数据结构与算法刷题(2)——挖掘机技术哪家强

Python数据结构与算法刷题(3)——跟奥巴马一起学编程


正文


输入两个非负10进制整数A和B(<=2^30-1),输出A+B的D (1 < D <= 10)进制数。


输入格式:

输入在一行中依次给出3个整数A、B和D。


输出格式:

输出A+B的D进制数。


输入样例:

123 456 8


输出样例:

1103


解题思路:先计算A+B(此时为十进制),然后把结果转换为D进制,而十进制转换为D进制的过程可以使用“除基取余法”。


这里的"基",指的是要转换为的进制D,除基取余指的是每次将要转换的数除以D,将余数存储起来,得到的商继续除D,重复操作,直到最后商为零。


将所有的余数从后往前输出就可以得到新的进制数z。


举个栗子:

11除以2,商为5,余数为1

5除以2,商为2,余数为1

2除以2,商为1,余数为0

1除以2,商为0,余数为1


将余数从后往前输出,得到1011就是11的二进制数。


上代码:



注意点:


1.range()的步长、范围和反向输出

2.int的整除

3.列表的索引使用

4.input一次获取多个值与获取数据格式

5.print的默认格式改变

6.考虑特殊输入情况


光看不练,眼高手低可不好哦,动手敲代码吧~

欢迎评论指出文中错误、代码优化和提问~~~


小编的免费Python入门课程已经登场,等你来撩~

已经4000+小伙伴加入学习啦~

点击阅读原文,立即学习

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的Python入门视频课程!!!

崔老师爬虫实战案例免费学习视频。

丘老师数据科学入门指导免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

丘老师Python网络爬虫实战免费学习视频。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存