• 1706: 神奇的编码(zzuli)


    题目描述

    假如没有阿拉伯数字,我们要怎么表示数字呢 
    小明想了一个方法如下: 
    1 -> A 
    2 -> B 
    3 -> C 
    .... 
    25 -> Y 
    26 -> Z 
    27 -> AA

    28 -> AB
    .... 
     
    现在请你写一个程序完成这个转换

    输入

    输入的第一个数为一个正整数T,表明接下来有T组数据。 
    每组数据为一个正整数n ( n <= 1000)

    输出

    对于每个正整数n,输出他对应的字符串

    样例输入

    3
    1
    10
    27
    

    样例输出

    A
    J
    AA

    来源

    2015广东工业大学ACM校赛-初赛 

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <cstring>
     5 #include<string>
     6 #include <cctype>
     7 #include<functional>
     8 #include<sstream>
     9 #include<iostream>
    10 #include<map>
    11 using namespace std;
    12 map<int, char> m;
    13 int a[110000];
    14 void FS(int n)
    15 {
    16     if (n == 0)
    17         return;
    18     FS((n-1) / 26);
    19     cout << m[(n-1) % 26];
    20 }
    21 int main()
    22 {
    23     for (char i = 'A'; i <= 'Z'; i++)
    24         m[i - 'A'] = i;
    25     int t;
    26     cin >> t;
    27     while (t--)
    28     {
    29         int n;
    30         cin >> n;
    31         FS(n);
    32         cout << endl;
    33     }
    34     return 0;
    35 }

    弄了半天这个题,终于AC了,刚开始的错误是没有考虑到这是一个不同于以往的转换进制的规则,他把取余为零去掉了,后面想了半天其他的控制方法,最后稀里糊涂的对了,

    想了想,既然它不同于传统的转换,那就把它弄为传统的来解决;

  • 相关阅读:
    MySQL主从复制集群添加slave节点
    GTID主从 与 传统主从复制
    20201207总结
    202011051 每周例行报告
    202011121 每周例行报告
    202010081 每周例行报告
    202011261 每周例行报告
    202010153 每周例行报告
    202010291 每周例行报告
    202011201 每周例行报告
  • 原文地址:https://www.cnblogs.com/kangdong/p/8809316.html
Copyright © 2020-2023  润新知