前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1463:[蓝桥杯2019初赛]年号字串

1463:[蓝桥杯2019初赛]年号字串

作者头像
可爱见见
发布2020-02-26 15:43:30
2K0
发布2020-02-26 15:43:30
举报
文章被收录于专栏:卡尼慕

题目

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

思路

也是一道比较简单的填空题,直接写答案即可。考察是数的表示法。

举个例子:在10进制下,325 = 3×10^2 + 2×10^1 + 5× 10^0。

同理,这道题无非就是把10进制换成了26进制,把数字变成了字母。

因此对2019进行展开。计算机计算:26×26×26=17576 > 2019,26×26=676,因此最多也就三位。再根据 26×26×3=2028>2019,因此最高位只能是 "B",2019 - (26×26×2) = 667,再把667拆开,以此类推。

最终答案:BYQ

当然,使用代码的话也是比直接计算要浪费时间,思路很简单,就按照十进制的算就好了。拿一个十进制的数对照着写。

代码

代码语言:javascript
复制
//1463: [蓝桥杯2019初赛]年号字串
#include <iostream>
#include <algorithm>
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 main(){
    int n = 2019;
    int a;
    string ans;
    while(n > 26){
        a = n % 26;
        ans += al[a-1];
        n /= 26; 
    }
    ans += al[n-1]; 
    reverse(ans.begin(), ans.end());
    cout<<ans;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡尼慕 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档