问题
输入一个10进制数,输出这个10进制数对应的16进制数
思路
首先用10进制数除以16,余数则为不能进位的数字,则写在最低位上,商的含义是有多少个16,如果商大于等于16的话,意味还可以接着进位,那么用商接着除以16,余数写在倒数第二位上……以此进行下去,直到不能进位为止
代码
#include <iostream>
#include<string>
using namespace std;
string m = "0123456789ABCDEF";
int main()
{
int n;
cin >> n;
string ans = "";
while (true)
{
if (n < 16)
{
ans = m[n] + ans;
break;
}
int w = n % 16;
ans = m[w] + ans;
n = n / 16;
}
cout << ans;
}