第十届蓝桥杯——试题B年号字符
作者:互联网
【问题】
小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。
对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,AZ 对应 52,LQ 对应 329。
请问 2019 对应的字符串是什么?
一:(该解题方法来源于网络)
#include <stdio.h>
#include <stdlib.h>
//26进制
int main()
{
int a=0,b=0,c=0;//感觉是三位数
int y=2019;
while(y--){
a++;
if(a==27){
a=1;
b++;
if(b==27){
b=1;
c++;//c最后加,则c为最高位
}
}
}
printf("%c %c %c",c+'A'-1,b+'A'-1,a+'A'-1);
return 0;
//答案B Y Q
}
printf("%c %c %c",c+'A'-1,b+'A'-1,a+'A'-1);
//这一步是将数字转换为字符,‘A’本身就代表1;
类似字符转换为数字即为 c-‘0’
二 这么久不写代码,不动脑筋,竟然连除余的含义都忘记!
#include <iostream>
using namespace std;
char str[27] = {0,'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 main() {
int num;
string ans = "";
scanf("%d", &num);
while(num) {
ans += str[num % 26]; //除余所得到的是余数
num /= 26;
}
for (int i = ans.size() - 1; i >= 0; i--) { //倒序输出
cout << ans[i];
}
return 0;
}
标签:26,27,试题,第十届,int,蓝桥,num,ans,对应 来源: https://blog.csdn.net/weixin_45962274/article/details/114307202