编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

18
圣数字
在许多字体(特别是Consolas字体)中,十个十进制数字中有五个在其中带有“孔”。我们将这些神圣数字称为: 46890 因此,这5位邪恶的数字是: 12357 如果一个整数仅包含圣数字,则可以将其分类为“圣”,否则为“不圣”。因为-是不圣洁的,所以没有负整数可以是圣洁的。 可以根据它们具有多少个孔来进一步分类圣整数。例如,以下数字的整洁度为1: 469 这些数字的圣洁度为2: 80 我们说整数的整体圣洁度是其数字圣洁度的总和。因此,80将具有4的圣洁度,并且99将具有2的圣洁度。 挑战 给定两个整数n > 0和h > 0,输出n圣洁度至少为的圣整数h。您可以假定输入和输出将不大于您的语言中可表示的最大整数或2^64 - 1,以较小者为准。 以下是具有holiness的前25个圣整数的列表h >= 1,以供参考: 0, 4, 6, 8, 9, 40, 44, 46, 48, 49, 60, 64, 66, 68, 69, 80, 84, 86, 88, 89, 90, 94, 96, 98, 99 具有圣洁性的前25个圣整数h >= 2是: 0, …

30
耐心,年轻的“ Padovan”
每个人都知道斐波那契数列: 您取一个正方形,在其上附加一个相等的正方形,然后重复附加一个正方形,该正方形的边长等于所得矩形的最大边长。 结果是一个美丽的正方形螺旋,其数字序列为斐波那契数列: 但是,如果我们不想使用正方形怎么办? 如果我们以类似的方式使用等边三角形而不是正方形,则会得到同样漂亮的三角形螺旋和新序列:Padovan序列,又称A000931: 任务: 给定一个正整数,,输出,所述在帕序列或第一个术语Ñ条款。ñNN一种ñaNa_NñNNñNN 假设序列的前三个项都为。因此,该序列将开始如下: 1个111 ,1 ,1 ,2 ,2 ,3 ,。。。1,1,1,2,2,3,... 1,1,1,2,2,3,... 输入: 任何正整数ñ≥ 0N≥0N\ge0 不必考虑无效的输入 输出: 该在帕序列个术语OR第一的帕序列表示。ñNNNñNN 如果打印出前术语,则输出可以是任何方便的内容(列表/数组,多行字符串等)ñNN 可以是索引或索引0001个11 测试用例:(第 0个索引,第个词)ñNN Input | Output -------------- 0 | 1 1 | 1 2 | 1 4 | 2 6 | 4 14 | 37 20 | …

25
向斯坦·李致敬
不幸的是,最伟大的漫画作家之一昨天下午去世了。许多好莱坞明星,音乐家,演员和许多其他人都向这位令人敬畏的作家致敬,所以我们也必须做点什么。 挑战 打印复仇者标志 注意:除了空格字符,您还可以使用其他任何字符代替#;而您必须为空格使用空格字符 在ASCII艺术中 ###### ############### ##### ########## #### ####### #### ### #### ### ### ### #### ### ### ### #### ### ### ### #### ### ### ### #### ### ### ### #### ### ### ### ########### ### ### ########### ### ### #### ### ### ### ### ### ### …

30
实现堆栈
我不敢相信我们还没有这个。.它是编程中最重要的数据结构之一,但仍然足够简单,可以在代码高尔夫球中实现: 挑战 您的任务是实现允许压入和弹出数字的堆栈,以测试实现并保持I / O简单,我们将使用以下设置: 输入将是非负整数列表 每个正整数表示一个,每个表示一个 -丢弃顶部元素。push( n ) 0 pop()ñnn推( n)push(n)\texttt{push(}n\texttt{)}000pop()pop()\texttt{pop()} 输出将是结果堆栈 例 例如,如果我们得到:[ 12 ,3 ,0 ,101 ,11 ,1 ,0 ,0 ,14 ,0 ,28 ][12,3,0,101,11,1,0,0,14,0,28][12,3,0,101,11,1,0,0,14,0,28] 1230101111个0014028[ 12 ][ 3 ,12 ][ 12 ][ 101 ,12 ][11,101,12][1,11,101,12][11,101,12][101,12][14,101,12][101,12][28,101,12]12[12]3[3,12]0[12]101[101,12]11[11,101,12]1[1,11,101,12]0[11,101,12]0[101,12]14[14,101,12]0[101,12]28[28,101,12] \begin{aligned} & 12 & [12] \\ & 3 & [3,12] \\ …

30
合并两个值
您有两个值,每个值0代表“未知”,或之一1,2,3。将它们合并为一个值,如下所示: 如果两个值都不为零且相等,则输出该值: (3,3) -> 3 如果两个值都不为零但不相等,则为未知输出0: (1,2) -> 0 如果一个值为零,另一个为非零,则输出非零值: (2,0) -> 2, (0,1) -> 1 如果两个值均为零,则输出零: (0,0) -> 0 测试用例: 有16个可能的输入对。 | 0 1 2 3 --+-------- 0 | 0 1 2 3 1 | 1 1 0 0 2 | 2 0 2 0 3 | 3 0 …
44 code-golf 

30
将n与n +1串联
介绍 OEIS序列A127421是一个数字序列,其十进制扩展数是2个连续递增的非负数的串联。简单地说,该序列中的每个数字是由放在一起形成Ñ与n + 1个用于一些非负整数的值Ñ。前几个术语是: 1,12,23,34,45,56,67,78,89,910,1011,1112,1213,1314,1415,1516,1617,1718,1819,1920,2021,2122,2223,2324,2425, 2526、2627、2728、2829、2930、3031、3132、3233、3334、3435、3536、3637、3738、3839、3940、4041、4142、4243、4344、4445、4546,... 挑战 给定一个正整数n,按升序打印OEIS序列A127421 的前n个条目。 输入和输出可以采用任何可接受的格式。字符串或数字适合输出。 前导零不会允许的。 允许使用完整的程序或功能。 就此挑战而言,n将为正且小于100。 默认情况下,不允许出现标准漏洞。 这个问题是代码高尔夫,因此最低字节数取胜。 这是一些示例输入和输出: 1 => 1 2 => 1, 12 3 => 1, 12, 23 10 => 1, 12, 23, 34, 45, 56, 67, 78, 89, 910 如有任何疑问,请随时提出。祝好运。 PS,这是我的第一个挑战,因此希望这一切都是有意义的。 编辑:删除了输出限制,以允许数字或字符串。

16
实施“懒惰排序”
我应该对数字列表进行排序,但是我很懒。很难弄清楚如何交换所有数字,直到所有数字都按升序排列,所以我想出了自己的算法来保证新列表的排序。运作方式如下: 对于大小为N的列表,我们需要N-1次迭代。在每次迭代中 检查第N个数字是否小于第N + 1个数字。如果是,则这两个数字已经排序,因此我们可以跳过此迭代。 如果不是,那么您需要连续递减前N个数字,直到这两个数字顺序正确为止。 让我们举一个具体的例子。假设输入是 10 5 7 6 1 在第一个迭代中,我们将比较10和5。10大于5,因此我们将其递减直到更小: 4 5 7 6 1 现在我们比较5和7。5小于7,因此在此迭代中无需执行任何操作。因此,我们转到下一个并比较7和6。7大于6,因此我们递减前三个数字,直到小于6,我们得到: 2 3 5 6 1 现在我们比较6和1。同样,6大于1,因此我们将前四个数字减1,直到小于1,我们得到: -4 -3 -1 0 1 我们完成了!现在,我们的列表已按完美排序。而且,为了使事情变得更好,我们只需要遍历列表N-1次,因此该算法以O(N-1)时间对列表进行排序,我敢肯定,这是最快的算法。² 今天的挑战是实现这种惰性排序。您的程序或函数将获得任意喜欢的标准格式的整数数组,并且您必须执行此惰性排序并返回新的“已排序”列表。数组永远不会为空或包含非整数。 这里有些例子: Input: 10 5 7 6 1 Output: -4 -3 -1 0 1 Input: 3 2 1 Output: …

19
尽快输入字母!
您的任务是创建一个程序,该程序可以测量您键入英文字母的速度。 该程序只接受小写字母a到z字母顺序。 每个字母都按在同一行上键入的方式回显(没有换行或字母之间的任何其他分隔符)。 如果键入无效字符,程序将Fail 在新行输出并退出。 如果键入所有26个字母,程序将在新行上输出从第一个字母到最后一个字母所花费的时间(以毫秒为单位),然后退出。 当您输入第一个字母时,计时器开始计时a。 输出示例: b Fail abcdefgg Fail abcdefghijklmnopqrstuvwxyz 6440 这是代码高尔夫球,因此最短答案以字节为单位。

22
原始青蛙🐸
“原始青蛙”是一种奇怪的动物,会在整数之间跳跃,直到到达3或19。 您的程序应接受一个整数n作为输入,并输出以下算法(3或19)的结果。 对于给定的整数n >= 2: 设f青蛙的位置。最初设置为n 如果f = 3或f = 19:青蛙停止跳跃停止程序和输出f。 如果f是素数:青蛙跳到那个位置2×f-1。返回步骤2。 如果f为Composite:则将其d设为f最大的除数。青蛙跳到那个位置f-d。返回步骤2。 例子: 一个例子n = 5: 5 > 9 > 6 > 3 stop 该程序应输出3。 另一个例子n = 23: 23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 …

12
在保留字词轮廓的同时加扰
这比“ 如何随机化单词中的字母和Cambridge Transposition”要先进得多,因为有关哪些字母可以与哪个字母互换的规则。一个简单的正则表达式在这里是不够的。 众所周知,只要单词的内脏都被打乱,只要它们的首尾字母以及它们的整体轮廓保持不变,仍可以阅读文本。给定可打印的Ascii + Newline文本,请按照以下规则对每个单词进行加扰: 加扰必须是(伪)随机的。 单词是拉丁字符从A到Z的序列。 只有首字母大写。 首字母和尾字母必须保持原样。 加扰时,只有以下组之一中的字母可以交换位置: acemnorsuvwxz bdfhkl gpqy it j (留在原地) 例 易腐烂,而他们的油菜 众所周知,只要其首字和末尾字母加上ovaerll ontliues raemin不能被破坏,txet仍可被读入,但其残言已被扰乱。给定一个patnirlbe Acsii + Nwnliee txet,samrclbe ecah单词anoccdirg表示这些规则: Smncrbliag必须是(pusedo)rondam。 刺是拉丁舞曲A thurogh Z的续集。 只有最初的小提琴才会成为uppcsaere。 必须先保持调音,再保持调音。 当使用sarnclbimg时,只有字母fwllnoiog guorps之一可能会出现以下情况: aneusvrowxmcz bhkfdl gqpy it j (入住plcae) 皇帝

30
广场很时髦
挑战 因此,嗯,看来,尽管我们面临着很多挑战,需要处理平方数或其他形状的数,但是我们没有一个简单地问: 给定一个整数n(where n>=0)作为输入,如果n是完美平方,则返回真实值,否则返回假值。 规则 只要标准I / O规则允许,您可以通过任何合理,方便的方式进行输入。 您不需要处理的输入量不能超过您选择的语言可以处理的输入量,也不会导致浮点数错误。 输出应该是两个一致truthy / falsey值(例如,一个true或false,1或0) - truthy如果输入的是一个完美的正方形,falsey如果它不是。 这是代码高尔夫球,因此最低字节数为准。 测试用例 Input: 0 Output: true Input: 1 Output: true Input: 64 Output: true Input: 88 Output: false Input: 2147483647 Output: false

30
如果AB在AB A中,那么是B?
给定两个整数A和B,如果AB(A减去B)在AB(A到B)中,则输出A,否则输出B。 “ A减B”是标准减法。 “ A到B”是从A到B的整数范围,包括A和B。例如: 1 to 4: 1, 2, 3, 4 -2 to 5: -2, -1, 0, 1, 2, 3, 4, 5 3 to -1: 3, 2, 1, 0, -1 7 to 7: 7 以字节为单位的最短代码获胜。 测试用例 A B Output 1 4 4 -2 5 5 3 -1 -1 7 …

30
闯入彩票
您最近在一个狡猾的赌博网站上开设了一个帐户,费用为25美元,他们会随机退还0到50美元。在两次获得5美元的收益后,您决定证明该网站是骗局。使用默认密码访问其外部防火墙后,您便可以进入其数据库服务器,并找到将最小和最大数量的值保存在何处。您决定将25'9's作为最大值插入,但是会收到一条错误消息,指出最大值必须为'uint64'类型。但是,现在您发现有些数字键似乎无法正确输入远程控制台。挑战似乎摆在您面前,几乎就像在Q + A网站上键入一样。 仅使用方便安装的程序测试和执行您的特定语言,输出无符号64位整数值的最大大小,但是,除编程工具外,几乎所有其他内容在本机上都损坏,因此您无需使用数字1, 2,4,6,8-在源代码或文字中,您还会注意到执行每段附加代码所需的程序似乎要花费成倍的时间,因此,如果您希望将其保持简短,最好想要在绘画之前致富! 挑战 编写一个程序,输出一个18446744073709551615(一个无符号的64位整数的最大值),可以是一个数字或单个字符串。 您的源代码不能包含任何字符“ 1”,“ 2”,“ 4”,“ 6”或“ 8” 如果您的语言没有无符号的64位整数或等效值,则输出可以采用字符串格式或其他格式,但必须为上述数字。 这是代码高尔夫,因此每种语言中最短的代码胜出!

30
这个词是按词法排序的吗?
给定输入字符串S,truthy如果S中的所有字母均按字母顺序排列,则返回:它们的ASCII值需要以升序或降序排列。falsy在其他情况下退货。 输入项 输入将使用相同的大小写(全部大写或全部小写)。您的提交应该能够同时处理这两种情况。 输入[A-Za-z]仅包含范围内的ASCII 输入长度至少为1,最多取决于您的语言支持的最大长度。 输入是字符串-不是字符列表,也不是ASCII码点数组。 输出量 输出应为true或false,或0/1,或者true / false您的语言可以提供的任何其他不同样式的输出。 所有正确的案例以及所有错误的案例都需要具有相同的输出。否为“ False为0,true为1、2或3”。 附加规则 禁止出现标准漏洞 答案必须是完整的程序或功能,而不是摘要或REPL条目。 代码高尔夫,最短答案(以字节为单位)获胜。 测试用例 特鲁西 "ABCDEF" "ZYX" "no" "tree" --> the multiple 'e's don't break the order "q" 虚假 "ABCDC" "yes" "deed" 无效 "Hello" --> invalid input - mixed case-, does not have to be handled "" …

25
对数组进行重排序
挑战 给定一个非空的整数数组,例如: [5, 2, 7, 6, 4, 1, 3] 首先将其切断成没有任何项目大于前一个的数组(即非升序数组): [5, 2] [7, 6, 4, 1] [3] 接下来,反转每个数组: [2, 5] [1, 4, 6, 7] [3] 最后,将它们全部串联在一起: [2, 5, 1, 4, 6, 7, 3] 这应该是程序输出/函数返回的结果。重复此过程足够的时间,数组将被完全排序。 规则 输入和输出可以通过任何标准方法给出,并且可以采用任何合理的数组格式。 输入数组永远不会为空,但可能包含负数和/或重复项。 每个整数的绝对值将始终小于2 31。 测试用例 希望这些能够涵盖所有边缘情况: [1] -> [1] [1, 1] -> [1, 1] [1, …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.