进制转换

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

但是后来不对劲,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;
}

全部评论

相关推荐

北京软开cpp有开的了嘛?
米爹:都泡出巨人观了,佬联系hr了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务