进制转换

开始我想着很简单,就是取模,除,取模,除......

但是后来不对劲,16进制的还要输出字母该怎么实现?可以用char来转换

这时候就要分情况讨论,看那个余数和10的相对大小,还有就是要先递归再输出,因为进制转换时是倒着输出的,如果把递归的位置写错地方就会导致输出的内容正好相反

就会导致

所以这个该什么时候重复操作也要注意。

完整代码如下:

#include<iostream>
using namespace std;
void change(int n,int r)
{
    if(n==0)
        return;
    change(n/r,r);
    int x = n%r;
    if(x<=9)
        cout<<x;
    else
        cout<<char('A'+x-10);
    
    
}
int main()
{
    int n,r;
    cin>>n>>r;
    change(n,r);
    return 0;
}

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务