呆河马

谁甘人生黯淡无光,谁愿做叶不争艳芳

lintcode 763Hex Conversion

这一题要求我们做进制转换

这个地方介绍下进制转换的方法,不断取余

上图就是一个基本思路

string hexConversion(int n, int k)
{
	string res = "";
	if (n == 0)
	{
		return "0";
	}
	while (n > 0)
	{
		char ch;
		int temp = n%k;        //第一步:取余
		if (temp <= 9)            //第二步:判断余数是否大于9,这个是针对k大于9的情况下
		{
			ch = (char)('0' + temp);         //temp转换为char会直接变成temp的char值,这个地方需要相对转换
		}
		else
		{
			ch = (char)('A' + temp - 10);
		}
		res = ch + res;       //第三步:string的加法相当于字符串相加,这里要注意除法越靠后转换后进制越靠前
		n = n / k;             //做除法,求出下一步的n
	}
	return res;
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzngzaixiaomantou/article/details/79950823
个人分类: lintcode
上一篇装饰器的理解
下一篇lintcode452. 删除链表中的元素
想对作者说点什么? 我来说一句

lintcode算法分析和解答

2017年07月26日 13.93MB 下载

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

关闭
关闭