进制转换

进制转换

http://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6

#include "stdio.h"
#include "string.h"

int disposeStr(char c)
{
	if (c >= 'a')
		return (c - 'a' + 10);
	else if (c >= 'A')
		return (c - 'A' + 10);
	else
		return (c - '0');
}
int dispose16(int n)
{
	int count = 1;
	for (int i = 0; i < n; i++)
	{
		count *= 16;
	}
	return count;
}
int main(void)
{
	char str[10];
	int num;
	int count;
	#pragma warning(suppress : 4996)
	while (scanf("%s", str) != EOF)
	{
		count = 0;
		num = strlen(str);
		for (int i = 2; i < num; i++)
		{
			count = disposeStr(str[i]) * dispose16(num - i - 1) + count;
		}
		printf("%d\r\n",count);
	}
	return 0;
}

全部评论
好他妈复杂
点赞 回复 分享
发布于 2020-02-27 03:00
i应该从0开始取吧?
点赞 回复 分享
发布于 2021-03-14 20:10
不考虑溢出吗?
点赞 回复 分享
发布于 2021-07-05 17:37

相关推荐

HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
15 3 评论
分享
牛客网
牛客企业服务