编写最短的程序,该程序将以一串数字(不超过20个长度)作为输入,并使用标准的数字时钟样式数字显示输出。例如,对于输入81,带有ascii输出的解决方案将提供:
_
|_| |
|_| |图形输出也是可以接受的,如果有帮助的话。
发布于 2012-12-04 15:30:16
{3 3⍴' _|'[1+⍵⊤⍨9⍴3]}¨⎕UCS'ા8धगɯેࣃଏ૽'[1+⍎¨⍞]字符串ા8धगɯેࣃଏ૽是unicode字符2750 56 2343 2327 623 2759 2777 2243 2831 2813 (但是,您应该能够复制和粘贴它)。他们对数字进行编码。程序从键盘上读取一行。
解释:
1+⍎¨⍞:从键盘上读取一行,将每个字符解析为数字,然后向每个数字中添加1(默认情况下,APL数组基于1)。⎕UCS'ા8धगɯેࣃଏ૽'[.]:选择属于您输入的数字数字的字符,并查找Unicode值。{.}¨:对于这些值,请执行:1+⍵⊤⍨9⍴3:从以基-3表示的值中获取前9个基-3位数字,并添加1(因为数组是基于ar1的)。' _|'[.]:根据这些数字选择空格、水平线或垂直线3 3⍴:格式为3乘3方框.发布于 2011-05-07 05:44:39
不是一种适合打高尔夫球的语言。但是无论如何,我试图尽可能地保持代码的大小--这是一个与“常用”语言完全不同的挑战。这是1555个字符或3110字节(如果编码为UTF-16;UTF-8更大)。
这是程序运行的屏幕截图。它真的很管用:

由于额外的行距,在StackExchange中这看起来很难看,请考虑在浏览器的JavaScript控制台中运行以下代码来修复这个问题:$('pre').css('line-height',1)
╓─╖ ╔╗┌─╖ ┌─╖
║ʜ║ ║╟┤↔╟┐ ┌┤‼╟┐
╙┬╜ ╚╝╘═╝│ │╘╤╝│
╔═╗ ┌┴────┐ │┌┴╖ ┌┴╖
║0║ ┌┴─┐ ┌┴─┐└┤ʜ╟─┤·╟┐
╚╤╝┌┴╖┌┴╖┌┴╖┌┴╖╘╤╝ ╘╤╝│
┌┘┌┤·╟┤ɦ╟┤·╟┤?╟ │ ┌┴╖│
│ │╘╤╝╘╤╝╘╤╝╘╤╝ └──┤‼╟┘
│┌┴╖│ ┌┴╖┌┘╔═╧╗ ╘═╝
└┤?╟┘┌┤?╟┘┌╢10║ ┌─────────┐
╘╤╝ │╘╤╝┌┘╚══╝ ┌─┬┘╔══╗┌──╖┌┴╖ ╓─╖
┘ └───┘╔════╗│┌┴┐║21╟┤>>╟┤·╟┐║ɦ║
╔════════╗║1005╟┘└┬┘╚══╝╘═╤╝╘╤╝│╙┬╜ ┌─┐
║14073768║╚════╝ ┌┴╖ ┌─╖ ┌┴╖┌┴╖└─┴─────────┘┌┴╖
║7584800 ╟───────┤?╟─┤‼╟─┤ʜ╟┤·╟─────────────┤·╟┐╔═══════╗╔══╗
╚════════╝ ╘╤╝ ╘╤╝ ╘╤╝╘╤╝ ╔══╗┌─╖┌┐╘╤╝│║2097151║║21╟┐
╔═══════════════╗│ ┘ │ │ ║48╟┤−╟┤├─┤┌┘╚══╤════╝╚══╝│
║140737555464224╟┘ ┌────┘┌┬┘ ╚══╝╘╤╝└┘┌┘│╓─╖ │┌┐┌─╖┌─╖┌┴─╖
╚═══════════════╝ │ ┌───┘└─────────┐┌┴─╖ │┌┘║↔║ ├┤├┤‼╟┤↔╟┤>>║
┌────────────┐┌────┐┌┴╖│┌────────────┐├┤<<║ ││ ╙┬╜┌┘└┘╘╤╝╘═╝╘╤═╝
│ ╔══╗╔═══╗├┘╓─╖ └┤·╟┘│ ╔══╗╔═══╗├┘╘╤═╝ │└─┐└─┤╔═╗┌┴╖ ┌──┘
│ ║95║║892║│┌╢‡╟┐ ╘╤╝ │ ║95║║877║│ ┌┘╔══╧═╗│ │║0╟┤?╟┬┘
│ ╚═╤╝╚═╤═╝││╙─╜│ │ │ ╚═╤╝╚═╤═╝│╔╧╗║2097║│ │╚═╝╘╤╝│
│╔══╗┌┴╖┌┐│ ││┌─╖│ ┌┴╖ │╔══╗┌┴╖┌┐│ │║1║║151 ║│ └──────┘
│║32╟┤?╟┤├┤ │└┤‼╟┘┌┤‡║ │║32╟┤?╟┤├┤ │╚═╝╚════╝│
│╚══╝╘╤╝└┘└──┴┐╘╤╝ │╘╤╝ │╚╤═╝╘╤╝└┘└──┴┐ ┌─┘
│ ┌┴╖ ┌┴╖┌─╖│ │ ┌┴╖│ ┌┴╖ ┌┴╖ ┌─╖┌┴╖
│ │‼╟─────┤·╟┤‼╟┘ │┌┤·╟┘ │‼╟─────┤·╟─┤‼╟┤‡║
└┐┌┐ ╘╤╝ ╘╤╝╘╤╝ ││╘╤╝┌┐ ╘╤╝ ╘╤╝ ╘╤╝╘╤╝
├┤├┐┌┴╖╔══╗ └──┐┌┐ │└┐├─┤├┐┌┴╖╔══╗ ├──┐└ │
│└┘└┤?╟╢32║╔═══╗├┤│┌┴╖││ └┘└┤?╟╢32║╔═╧═╗│┌┐┌┴╖╔══╗
╔╧══╗╘╤╝╚══╝║881╟┘│├┤?╟┘│ ╘╤╝╚══╝║325║└┤├┤?╟╢32║
║927║╔╧══╗ ╚═══╝ └┘╘╤╝╔╧═══╗╔╧══╗ ╚═══╝ └┘╘╤╝╚══╝
╚═══╝║124╟───────────┘ ║1019║║124╟───────────┘
╚═══╝ ╚════╝╚═══╝如果我没有犯一个错误,输出可能会更小;我通过添加一个额外的函数来逆转输入,从而修正了这个错误。否则我可能得重写所有这些。
我还犯了另一个错误(在两个对‼的调用中交换操作数),这使得有必要声明额外的‡函数,但是这个函数太小了,因此不添加任何字符!
发布于 2011-02-18 01:19:17
import wx, wx.gizmos as g
class T(wx.Frame):
def __init__(_):
wx.Frame.__init__(_, None, size = (800, 60))
l = g.LEDNumberCtrl(_, -1)
l.Value = raw_input()
class M(wx.App):
def OnInit(_):
T().Show()
return 1
M().MainLoop()测试
echo -n 81 | python codegolf-997-wx.py
ps:不是一个严肃的条目,但看起来图形输出也是可以接受的,所以我只是尝试了一下:-)
https://codegolf.stackexchange.com/questions/997
复制相似问题