【蓝桥杯真题分类解析(C/C++版 软件类)第1章 蓝桥杯基础知识】1.5 年号字串

提示:2019年试题B

文章目录

  • 一、题目描述
    • 1.自己编写转换函数
  • 三、进制转换总结


一、题目描述

小明用字母 A 对应数字 1, B 对应 2,以此类推,用 Z 对应 26。对于 27以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27, AB 对应 28, AZ 对应 52, LQ 对应 329。

请问 2019 对应的字符串是什么?

#include

using namespace std;

int main(){
char ch[26];
char ans[10];
for(int i=0;i<26;i++){
ch[i]=‘A’+i;
}
int num=2019;
int index=0;
while(num){
int mod=num%26;
num=num/26;
if(mod==0){
mod=26;
}
ans[index++]=ch[mod-1];
}
for(int i=index-1;i>=0;i–){
cout< }
return 0;
}
题目相当于将2019转化为二十六进制。

1.自己编写转换函数

十进制转化为二十六进制采用的方法是÷26取余逆排序法,具体的做法是:用26除十进制整数,即可得到一个商和余数;再用26除商,又会得到一个商和余数,如此进行。直到商为0,然后把所有余数按逆序排列。

#include 

using namespace std;

int main(){
	char ch[26];
	char ans[10];
	for(int i=0;i<26;i++){
		ch[i]='A'+i; 
	}
	int num=2019;
	int index=0;
	while(num){
		int mod=num%26;
		num=num/26;
		if(mod==0){
			mod=26;
		}
		ans[index++]=ch[mod-1];
	} 
	for(int i=index-1;i>=0;i--){
		cout<<ans[i];
	}
	return 0;
} 

运行结果为BYQ。


三、进制转换总结

十进制转换为n进制的案例程序具体如下。

char Hex[16]={'0','1','2',...,'A','B',...,'E','F'};
cin>>num;
cin>>jz;
do{
	result[i++]=num%jz;
	num=num/jz;
}while(num!=0);
for(i--;i>=0;i__){
	cout<<Hex[result[i]];
}

你可能感兴趣的:(蓝桥杯,c++)