啊啊啊!又鸽了几天,这几天事情实在是太多了。组织比赛,物资。。。容我找一下理由,所以都没有写题,今天刷PAT看到了一个题,就是简单的进制转换,正好借此机会整理一下关于进制转换的问题。好,我们先来看这个题。
1022. D进制的A+B (20)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
思想:
就是简单的进制转换,这个题我们偷懒可以直接调用C语言stdlib.h头文件里的itoa函数,直接得到答案:
但是不知道问什么pat显示编译错误,我用C++写法还是编译错误,看来是不支持这个函数?好吧,看来偷懒是不行了,于是只好老实的用辗转相除法写了,一遍AC:
如果大于10进制以后,加一个对于转换数字为对应字符就可以了:
因为问题比较简单,这里就不加注释解释了,需要注意的是,如果有小数,是做乘法取整,一般取个三四位就差不多了。