- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
还有什么比螺旋更适合 Easter Code Golf 类(class)的呢?
好吧,我几乎猜到了一切。
按字符数计算的最短代码,用于显示由星号 ('*') 组成的漂亮 ASCII 螺旋。
输入是一个数字, R
,这将是螺旋的 x 尺寸。另一个维度 (y) 始终为 R-2
。该程序可以假设 R
始终为奇数且 >= 5。
一些例子:
Input
7
Output
*******
* *
* *** *
* * *
***** *
Input
9
Output
*********
* *
* ***** *
* * * *
* *** * *
* * *
******* *
Input
11
Output
***********
* *
* ******* *
* * * *
* * *** * *
* * * * *
* ***** * *
* * *
********* *
代码计数包括输入/输出(即完整程序)。允许任何语言。
我轻松击败的 303 个字符长的 Python 示例:
import sys;
d=int(sys.argv[1]);
a=[d*[' '] for i in range(d-2)];
r=[0,-1,0,1];
x=d-1;y=x-2;z=0;pz=d-2;v=2;
while d>2:
while v>0:
while pz>0:
a[y][x]='*';
pz-=1;
if pz>0:
x+=r[z];
y+=r[(z+1)%4];
z=(z+1)%4; pz=d; v-=1;
v=2;d-=2;pz=d;
for w in a:
print ''.join(w);
现在,进入螺旋......
最佳答案
r=input()
def p(r,s):x=(i+1)/2;print "* "*x+("*" if~i%2 else" ")*(r-4*x)+" *"*x+s
for i in range(r/2):p(r,"")
for i in range((r-1)/2-1)[::-1]:p(r-2," *")
感谢您的评论。我删除了无关的空格并使用了 input()。我仍然更喜欢在命令行上获取参数的程序,因此这里的版本仍然使用 176 个字符的 sys.argv:
import sys
r=int(sys.argv[1])
def p(r,s):x=(i+1)/2;print "* "*x+("*" if~i%2 else" ")*(r-4*x)+" *"*x+s
for i in range(r/2):p(r,"")
for i in range((r-1)/2-1)[::-1]:p(r-2," *")
将螺旋线切成两个几乎相等的部分,顶部和底部,顶部一行比底部大:
***********
* *
* ******* *
* * * *
* * *** * *
* * * * *
* ***** * *
* * *
********* *
观察顶部部分如何漂亮且对称。观察底部如何在右侧有一条垂直线,但在其他方面与顶部非常相似。请注意顶部每隔一行的图案:每一侧的星星数量不断增加。请注意,中间的每一行都与之前的锯完全一样,只是它用星星填充了中间区域。
函数 p(r,s) 打印出宽度为 r 的螺旋顶部的第 i 行,并将后缀 s 贴在末尾。请注意,i 是一个全局变量,尽管它可能并不明显!当 i 为偶数时,它会用空格填充行的中间,否则用星星填充。 (~i%2 是获得 i%2==0 效果的一种令人讨厌的方法,但实际上根本没有必要,因为我应该简单地交换“*”和“”。)我们首先绘制顶部随着 i 的增加,绘制螺旋线的行,然后我们用 i 减少的方式绘制底部的行。我们将 r 降低 2 并添加后缀“*”以获得右侧的星星列。
关于language-agnostic - Code Golf : Easter Spiral,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563561/
前几天我写了一些邮件合并代码,虽然它有效,但我被代码关闭了。我想看看它在其他语言中的样子。 所以对于输入,例程需要一个联系人列表 Jim,Smith,2681 Eagle Peak,,Bellevue
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 好的,这是一个相当复杂的 Code Golf 挑战:实现 Reversi 的游戏(奥赛罗)。 游
Locked. This question and its answers are locked,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 挑战:最短的代码,通过字符计数来检测
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 挑战 编写一个程序,作为 Fractran口译员。在任何语言中,按字符数计算最短的口译员是赢家。
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 编写一个程序,输出 反向 其源代码作为字符串。如果来源是 abcd efg (即 C 字符串 "
一个字就是一个anagram如果该单词中的字母可以重新排列以形成不同的单词。 任务: 通过字符数找到给定单词列表的所有字谜集的最短源代码。 空格和新行应该算作字符 使用代码标尺 ---------10
锁定。这个问题及其答案是 locked,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。 规则 汉诺塔是一个谜,如果你不是很熟悉它,这里是它的工作原理: 游戏场由 3 根杆和 x 个圆盘组
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 Code Golf 的常用规则。这里以python实现为例 from PIL import I
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 锁定。这个问题及其答案
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 我最近发布了one of my favourite interview whiteboard c
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 按字符数发布您的最短代码,以检查玩家是否获胜,如果获胜,是哪一个。 假设变量 b 中有一个整数
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 (编辑:什么是 Code Golf:Code Golf 是用您喜欢的任何语言的字符数以最少的代码
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我已经用 PHP 为自己制定了这个解决方案,但我很好奇如何以不同的方式完成它 - 甚至更好。我
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 目标:任何语言。返回字符串是否为回文的最小函数。这是我的 Python 版本: R=lambd
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我刚刚在 UVA's Online Judge 上遇到了这个小问题并认为它可能是进行一些 Co
我是 Golang 的新手,正在使用 postgres 的 PQ 包。我想做的是防止重复的电子邮件,所以我有一个查询来检查用户电子邮件是否已经在数据库中 check_duplicate_emails,
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 好了大家,今天的目标是构建一个图灵机模拟器。对于那些不知道它是什么的人,请参阅 the Wik
锁定。这个问题及其答案是 locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。 挑战在于创建一种算法,用于根据序列中的当前位置生成序列中特定大小的数字子集。 当浏览 Stack
锁定。这个问题及其答案是 locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。 生成列表列表(或打印,我不介意)a Pascal's Triangle大小为 N,代码行数尽可能少
请按照我在下面给出的示例输入和输出,用尽可能短的源代码回答将任意明文转换为其相应密文的程序。获得最少 CPU 时间或最少内存使用量的奖励积分*。 示例 1: 明文: 敏捷的棕色狐狸跳过了懒狗。 Sup
我是一名优秀的程序员,十分优秀!