36进制(蓝桥杯17年国赛第一题)

版权声明:盗版必究 https://blog.csdn.net/qq_42837885/article/details/89000428

问题描述

对于16进制,我们使用字母A-F来表示10及以上的数字。
如法炮制,一直用到字母Z,就可以表示36进制。

36进制中,A表示10,Z表示35,AA表示370

你能算出 MANY 表示的数字用10进制表示是多少吗?

请提交一个整数,不要填写任何多余的内容(比如,说明文字)
答案
1040254

反思

真的不能大意啊,36进制我调用函数怎么算的是26的阶乘…

代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	char str[] = "MANY";
	int len = strlen(str);
	int i;
	int sum = 0,t = 0;
	for (i = len - 1; i >= 0; i--)
	{
		if (str[i] >= 'A')
		{
			sum += (int)((str[i] - '7')*pow(36, t++));
		}
		else
		{
			sum += (int)((str[i] - '0')*pow(36, t++));
		}
	}
	printf("%d\n", sum);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42837885/article/details/89000428