1476:[蓝桥杯2019初赛]字串数字

题目

题目传送门:1476:[蓝桥杯2019初赛]字串数字

思路

之前已经做过类似的题目了,考察的是进制的表示方法。例如,在10进制下:

88 = 10 ^ 8 + 8

888 = 100 ^ 8 + 10 ^8 + 8

只是这道题目将十进制转换为二十六进制罢了。根据公式展开即可。

代码

//1476:[蓝桥杯2019初赛]字串数字
#include<bits/stdc++.h>
using namespace std; 
char al[26] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
				'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
				'W', 'X', 'Y', 'Z'};
//获得某字符串位置(权值) 
int getLocation(char a){
	for(int i = 0; i < 26; i++){
		if(al[i] == a)
			return i;
	}
	return 0;
}
int main(){
	string input = "LANQIAO"; //输入 
	int len = input.length(); //统计长度 
	long long ans = 0;
	for(int i = 0; i < len; i++){
		char tmp = input[i];
		int location = getLocation(tmp) + 1;
		ans += pow(26, len - i - 1) * location;
	}
	cout<<ans;
	return 0;
} 
发布了77 篇原创文章 · 获赞 12 · 访问量 5073

猜你喜欢

转载自blog.csdn.net/weixin_41960890/article/details/104668075