进制转换

进制转换

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;
}

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

相关推荐

不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
评论
15
3
分享

创作者周榜

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