首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Code Golf: Excel列名的数字等效项

Code Golf: Excel列名的数字等效项
EN

Stack Overflow用户
提问于 2010-04-14 10:06:46
回答 34查看 53.7K关注 0票数 76

挑战

按字符计数显示的最短代码,它将输出与Excel列字符串等效的数值。

例如,A列是1,B是2,依此类推。点击Z后,下一列变为AA,然后是AB,依此类推。

测试用例:

代码语言:javascript
复制
A:    1
B:    2
AD:   30
ABC:  731
WTF:  16074
ROFL: 326676

代码计数包括输入/输出(即完整程序)。

EN

回答 34

Stack Overflow用户

发布于 2010-04-14 17:11:52

Excel,9个字符:)

使用合适的工具来完成工作:

代码语言:javascript
复制
=COLUMN()

票数 339
EN

Stack Overflow用户

发布于 2010-04-15 03:02:41

Brainf*ck,81个字符(无空格)

代码语言:javascript
复制
,[>>>[->>+++++[-<+++++>]<+<]>[-<+>]<<++++++++[<++++++++>-]<[<->-]<[>>>+<<<-],]>>>

解释

代码语言:javascript
复制
,[  // get character input into p[0], enter loop if it isn't null (0)
>>>[->>+++++[-<+++++>]<+<] // take what's in p[3] and multiply by 26, storing it in p[4]
>[-<+>] // copy p[4] back to p[3]
<<++++++++[<++++++++>-]< // store 64 in p[1]
[<->-]< // subtract p[1], which is 64, from the input char to get it's alphabetical index
[>>>+<<<-] // add p[0] to p[3]
,] // get another character and repeat
>>> // move to p[3], where our final result is stored

所以你会注意到我实际上并没有将数值转换成ascii字符串来打印。这很可能会毁了乐趣。但我把指针移动到结果所在的单元格上,这样至少对机器有用。

嘿你知道吗我打败了C#!

票数 55
EN

Stack Overflow用户

发布于 2010-04-15 11:21:20

APL

13个字符

将值放入x

代码语言:javascript
复制
x←'WTF'

然后用以下公式计算:

代码语言:javascript
复制
26⊥(⎕aV⍳x)-65

J打败我的唯一原因是因为括号。我在想,应该有一些方法来重新安排它,以避免需要它们,但这是漫长的一天。想法?

(嘿,你们这些使用30+字符解决方案的perl程序员太可爱了!)

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2634427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档