标题:[清理垃圾帖子]
只看楼主
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:8 
可以看成一个进制转换的问题

26进制(对应相应的字母)!和十进制的转换!
2011-09-05 17:42
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:0 
程序代码:
void fun(int b){
    if(b>9){
        fun(b/10);
    }
    int c = b%10;
    if(c==0)
        printf("0");
    else{
        printf("%c",c+'A'-1);
    }
}
int main(){
    int a,temp;
    scanf("%d",&a);
    if(a<=26){
        printf("%c",a+'A'-1);
    }
    temp = (a/26)*10+a%26;
    fun(temp);
    printf("\n");
    return 0;
}
2011-09-05 18:19
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
得分:0 
回复 12楼 hahayezhe
楼上的有没有运行过,那个输入1好像就不对呢
2011-09-05 18:31
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
程序代码:
#include <stdio.h>
int base[26] = {'Z','A','B','C','D','E','F','G','H','I','J',//1-10
'K','L','M','N','O','P','Q','R','S','T',//11-20
'U','V','W','X','Y'};//21-26
int main()
{
    int i,j;
    int n;
    while(EOF != scanf("%d",&n))
    {
        int k = 0;
        int bit[100] = {0};
        while(n)
        {
            bit[k++] = n%26;
            n /= 26;
        }
        while(k--)
        {
            putchar(base[bit[k]]);
        }
        printf("\n");
    }
    return 0;
}
我直接用Z来代替0了 输入26输出AZ表示向前面进了一位

                                         
===========深入<----------------->浅出============
2011-09-05 18:42
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
以下是引用laoyang103在2011-9-5 18:42:20的发言:

#include  
int base[26] = {'Z','A','B','C','D','E','F','G','H','I','J',//1-10
'K','L','M','N','O','P','Q','R','S','T',//11-20
'U','V','W','X','Y'};//21-26
int main()
{
    int i,j;
    int n;
    while(EOF != scanf("%d",&n))
    {
        int k = 0;
        int bit[100] = {0};
        while(n)
        {
            bit[k++] = n%26;
            n /= 26;
        }
        while(k--)
        {
            putchar(base]);
        }
        printf("\n");
    }
    return 0;
}我直接用Z来代替0了 输入26输出AZ表示向前面进了一位
没仔细看代码哦,输入26应该只输出Z的

我就是真命天子,顺我者生,逆我者死!
2011-09-05 18:55
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
以下是引用hahayezhe在2011-9-5 18:19:53的发言:

void fun(int b){
    if(b>9){
        fun(b/10);
    }
    int c = b%10;
    if(c==0)
        printf("0");
    else{
        printf("%c",c+'A'-1);
    }
}
int main(){
    int a,temp;
    scanf("%d",&a);
    if(a<=26){
        printf("%c",a+'A'-1);
    }
    temp = (a/26)*10+a%26;
    fun(temp);
    printf("\n");
    return 0;
}
你这代码肯定不完整吧??

我就是真命天子,顺我者生,逆我者死!
2011-09-05 19:02
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
老大你说输入52应该输出多少? B0 还是 BZ ?

                                         
===========深入<----------------->浅出============
2011-09-05 19:09
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
得分:0 
回复 17楼 laoyang103
52应该是AZ
2011-09-05 19:11
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
得分:0 
1     A
25    Y
26    Z
27    AA
51    AY
52    AZ
53    BA
77    BY
78    BZ
79    CA
...
701    ZY
702    ZZ
703    AAA
...
18279    AAAA
...
2011-09-05 19:16
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:0 
if(a<=26){
        printf("%c",a+'A'-1);
return 0; 加句这个,临时写的 没编译 应该没问题啊!思路就这样啊
    }
2011-09-05 19:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349192-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.546435 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved