chyanog 发表于 2011-12-6 21:27:39

写一个函数,输入0打印A,1打印B,...,26打印AA,27打印AB........

很久没来emath了,不知道最近论坛活跃否,向大家问好!

wayne 发表于 2011-12-6 22:36:24

:)
欢迎归来
===========
好像不是26进制的形式,能否补全一下,先给我们大家打印出1-60的来

chyanog 发表于 2011-12-6 23:12:10

前78个:
{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ}

wayne 发表于 2011-12-7 00:16:17

我来抛砖引玉:f=FromCharacterCode, 1]] + 65] &

chyanog 发表于 2011-12-7 01:47:53


g := FromCharacterCode + 65];
f := g /@ (IntegerDigits - Join] - 1], {0}]) //
   StringJoin;
还是wayne的代码短小精悍

chyanog 发表于 2011-12-7 01:56:54

想知道C代码如何写,尽量不用数组或链表。
再写一下他的反函数如何?

wayne 发表于 2011-12-7 09:09:21

5# chyanog
题目应该有问题。
数的最高位不能为0,意味着最高位总是只有25个字符的
不知楼主能否打印出 670--680 的值来

风云剑 发表于 2011-12-7 10:12:16

这题目很别扭。正如wayne说的那样。
676应该是ZA吗?

G-Spider 发表于 2011-12-7 12:55:40

换一种理解:0   -> 0
1   -> 1
...
9   -> 9
10-> 00
11-> 01
...
19-> 09
20-> 10
21-> 11
...
90-> 80
91-> 81
...
100 -> 90
101 -> 91
...
109 -> 99
110 -> 000
111 -> 001
...

gxqcn 发表于 2011-12-7 21:11:26

想当初,在初中时,数学老师让我们用一个笔记本记录一些好题,
我就是采用楼主所述的纯英文字母序列方式进行计数的。
有点象进制转换,又不尽然,因为A虽对应为0,但AA却不等于A,
所以,更贴切的处理是将A~Z对应27进制的1~26,暗含一个空字串对应于0。
页: [1] 2 3
查看完整版本: 写一个函数,输入0打印A,1打印B,...,26打印AA,27打印AB........