题解 | #十进制整数转十六进制字符串#

十进制整数转十六进制字符串

https://www.nowcoder.com/practice/80eca5f47e6f473893151b863b25aba1

#include <iostream>#include <string>#include<vector>using namespace std;

string toHexString(int n);

int main() {

int n;
cin >> n;

string hexStr = toHexString(n);
cout << hexStr << endl;

return 0;

}

string toHexString(int n) {// write your code here......int a = n;//首先计算余数,并存储到向量中int k = n;vector<int> s;while (true){k = a % 16;//注意这个式子一定要在下下面式子之前,因为如果放在之后,所得到的余数是更新后的a%16的余数,而不是当前的a%16的余数。注意变量值的变化a = a / 16;if (a == 0) {s.push_back(k);break;}s.push_back(k);}

string w;//设定输出的字符串
vector<int>::reverse_iterator rit;//为了获取反向的余数
for (rit = s.rbegin(); rit != s.rend(); rit++) {
    switch (*rit) { //必须是整型号
    case 10:
        w = w + "A";
        break;
    case 11:
        w = w + "B";
        break;
    case 12:
        w = w + "C";
        break;
    case 13:
        w = w + "D";
        break;
    case 14:
        w = w + "E";
        break;
    case 15:
        w = w + "F";
        break;
    default:
        w = w + to_string(*rit);
        break;
    }
}
return w;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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