ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第十届蓝桥杯——试题B年号字符

2021-03-03 12:57:27  阅读:177  来源: 互联网

标签:26 27 试题 第十届 int 蓝桥 num ans 对应


【问题】
小明用字母 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有