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

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

原文地址:https://www.cnblogs.com/kangdong/p/8809316.html