26进制转换 boj1237

来源:互联网 发布:手机去广告软件 编辑:程序博客网 时间:2024/06/07 17:22
Description
xiaoming最近失眠,因为他的心里总是想着某一位女生,所以他决定数羊,毕竟是搞算法出来的人,所以他数羊的方式也很特别:1号羊A,2号羊B.....,26号羊Z,27号羊AA,28号


羊AB....702号羊ZZ,703号羊AAA, 123136851羊JIKYBS。数着数着他就睡着了,但是在梦里,他看到了她所想念的那个女生,正当xiaoming沉浸在幸福中的时候,让人意外的 事情发生了,女孩说:你数了那么多羊,你到底记不记得第XX号羊叫什么?面对这一个考验,小明惊醒了,他要赶快解决这一个问题,然后再次进入梦乡。

Input
多组数据输入。
每一组数据只有一个正整数n(n<=10^9) 


Output
对于n号羊,请输出它的命名。

Sample Input

4
28


Sample Output

D
AB

注意从1开始计数 1-->A,这和0-->A有区别,在每次%26之前需要对被除数减一

#include <cstdio>
using namespace std;

int main(int argc, char *argv[])
{
    int n, m, i;
    char str[100];

    while (EOF != scanf("%d", &n))
    {
        i = 0;
        while (!= 0)
        {
            if (< 26)
            {
                str[i++] = n + 'A' -1;
                break;
            }

            /*注意这里要减一*/
            n--;
            m = n % 26;
            str[i++] = m + 'A';
            n = n / 26;
        }

        for (i-- ; i>=; i--)
        {
            printf("%c", str[i]);
        }
        printf("\n");
    }
}


原创粉丝点击