(o゚▽゚)o 欢迎

不积跬步无以至千里,愿与君共勉!

蓝桥杯 基础练习 十进制转十六进制

问题描述
  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
  给出一个非负整数,将它表示成十六进制的形式。
输入格式
  输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
输出格式
  输出这个整数的16进制表示
样例输入
30
样例输出

1E


#include <iostream>
#include <vector>
#include <iterator>

using namespace std;

char sixteen[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
vector<char> result;
//递归整除16 
void func(int a)
{
	if (0 == a)
	{
	}
	else
	{
		result.push_back(sixteen[a%16]);
		a = a/16;
		func(a);
	}
}

int main()
{
	int num;
	cin >> num;
	if (0 == num)
	{
		cout << 0 << endl;
	}
	else
	{
		func(num);
		
		vector<char>::reverse_iterator it = result.rbegin();
		for (;it != result.rend(); it++)
		{
			cout << *it;
		}
		cout << endl;
	}
	return 0;
}

阅读更多
版权声明:不积跬步无以至千里,愿与君共勉! https://blog.csdn.net/Crazy_Tengt/article/details/79546061
个人分类: 蓝桥杯
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭