根据iPhone :编写最短的程序,按顺序打印完整的iPhone迭代列表:
iPhone
iPhone 3G
iPhone 3GS
iPhone 4
iPhone 4S
iPhone 5
iPhone 5c
iPhone 5s
iPhone 6
iPhone 6 Plus
iPhone 6s
iPhone 6s Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
iPhone XR
iPhone XS
iPhone XS Max
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max输出应该按照指定的方式打印,尽管允许使用尾换行符(以及每行末尾的额外空格)。
这是代码高尔夫,所以最短的答案,以字节为单位,每种语言,获胜。
发布于 2020-03-08 03:22:37
发布于 2020-03-08 06:40:22
11”3G3GS44S55c5s66‰´6s6s‰´SE77‰´88‰´XXRXSXSî£ÿÿˆ×ÿˆ×•ΛΩ&°ŽäÞнã•0šTª£'i”ƒ¿ ”«ì»我没有时间重新分析。
'i”ƒ¿”«D… 3G«D'S«.ÀD.Á„ 4«D'S«.ÀD.Á„ 5«Ð'c«s's«.ÀD.Á„ 6«D" Plus"D.Á«sDŠ's«D.À«.ÀD.Á… SE«.ÀD.Á„ 7«D" Plus"D.Á«.À.ÀD.Á„ 8«DŠs«.ÀD.Á„ X«Ð'R«s'S«D" Max"D.Á«.À.ÀD.Á… 11«DŠ" Pro"«DŠs«»首先,我使用iPhone推送字符串“'i”ƒ¿”«”。
我复制,并推动“3G",并连接他们得到"iPhone 3G”。
在此之后,我使用.ÀD.Á获取堆栈顶部的"iPhone“,等等。
当我到达iPhone 6时,我将“Plus”放在堆栈的底部,并将其保存到iPhone 6S Plus中。
我不把它保存到iPhone 7和8 Plus,因为我不确定它是否会减少一些字节,而且我已经花了足够的时间来计算它。
但是我保存了,而且我非常肯定保存“Plus”会减少更多的字节。然而,现在这个计划已经完成了,我还不清楚我是如何做到的。
最后,我将整个堆栈与换行符连接起来,然后进行隐式输出。
发布于 2020-03-09 00:14:01
“Ø^ÞṠṠẠ'Ḣߥ»=⁶œṗ;11;“RcGEs436X578 ”µ“ƈ`¿øÐ⁽ḞÆCḊḋɲÑF×GÇz ⁸¦MƊ‘ד£¿Þ瑦5ŻṃµṚ“®Ɲ,»,K)Y使用十八个非"iPhone“部件,从大数十八的大端数构造每一行,然后用”iPhone“作为前缀,并用换行符联接。
使用的部件是(逗号分隔的):Max, Plus, Pro, ,S,R,c,G,E,X,s,3,4,5,6,7,8,11
选择了到18位数字的映射,以便:
S,G,3;Plus,s,6;Max,S,X;和Max, Pro,11)都是5的精确倍数(小于1275) --允许使用代码页索引进行编码,并使用后乘来获得它们的全部值。其中一种(1-索引)排序是:S, Max, Plus, Pro,11,R,c,G,E,s,4,3,6,X,5,7,8,
因此,代码的工作方式如下:
“...»=⁶œṗ;11;“...”µ“...‘ד£¿Þ瑦5ŻṃµṚ“®Ɲ,»,K)Y - Main Link: no arguments
“...» - string = "S"+" Max"+" Plus"+" Pro"
⁶ - space character
= - equals? (vectorises)
œṗ - partition before truthy indices
;11 - concatenate 11
“...” - list of characters "RcGEs436X578 "
; - concatenate
- giving our "digits" [1,2,...,17,0]
µ - start a new monadic chain
“...‘ - list of code-page indices = [156, 96, 11, 29, 15, 141, 195, 13, 67, 193, 233, 163, 16, 70, 17, 71, 14, 122, 32, 136, 5, 77, 145]
¦ - sparse application...
- ...to indices:
“£¿Þç‘ - code-page indices = [2, 11, 20, 23]
× 5 - ...do: multiply by five -> [156, 480, 11, 29, 15, 141, 195, 13, 67, 193, 1165, 163, 16, 70, 17, 71, 14, 122, 32, 680, 5, 77, 725]
Ż - prepend a zero
ṃ - base-decompress (convert to base-18 using the "digits")
- e.g. 680 -> [2, 1, 14] -> [" Max",'S','X']
µ ) - for each:
Ṛ - reverse it (e.g. [" Max",'S','X'] -> ['X','S'," Max"])
“®Ɲ,» - string = "iPhone"
, - pair
K - join with a space character
Y - join with newline characters
- implicit, smashing printhttps://codegolf.stackexchange.com/questions/200713
复制相似问题