chyanog 发表于 2011-12-7 23:55:26

7# wayne

670->YU
671->YV
672->YW
673->YX
674->YY
675->YZ
676->ZA
677->ZB
678->ZC
679->ZD
680->ZE

发现前边的代码有问题

wayne 发表于 2011-12-8 09:47:29

11# chyanog
这样理解的话,那你5楼的代码也有问题.

风云剑 发表于 2011-12-8 11:08:53

更贴切的处理是将A~Z对应27进制的1~26,暗含一个空字串对应于0。 gxqcn 发表于 2011-12-7 21:11 http://bbs.emath.ac.cn/images/common/back.gif
这样也不行。

风云剑 发表于 2011-12-8 11:32:30

1000 -> ALM
10000 -> NTQ
100000 -> EQXE
1000000 -> BDWGO
10000000 -> UVXWK
100000000 -> HJUNYW
1000000000 -> CFDGSXM
正确?

wayne 发表于 2011-12-8 13:12:30

14# 风云剑
按照楼主的代码是:

f =YZ
f =AZA

f =YYZ
f =AZZA

chyanog 发表于 2011-12-8 14:06:52

14# 风云剑
没错!

chyanog 发表于 2011-12-8 14:07:55

12# wayne

的确有问题,开始竟然没发现

风云剑 发表于 2011-12-8 15:47:53

反函数好像不难
int main()
{
    char    str;
    long    x=0, i=0;
    printf("input string:");
    scanf("%s", str);
    do
    {
      x*=26;
      x+=str - 'A';
      i++;
      if(str)
      {
            x++;
      }
    }while(str);
   
    printf("%d\n", x);
    return 0;
}

风云剑 发表于 2011-12-8 15:49:51

正向函数我一直没写出什么好办法,我的方法很土,就是模拟加法。

wayne 发表于 2011-12-8 16:36:42

只能从数学上找规律了:
A-Z      ------------>      0----25
AA-ZZ------------>      26----26^2
AAA-ZZZ ---------->      26+26^2-1 ----26^3
页: 1 [2] 3
查看完整版本: 写一个函数,输入0打印A,1打印B,...,26打印AA,27打印AB........