什么是最短的Perl单行程序打印出硬编码的2位十进制数的前9个幂(例如,.37),每个都在自己的行上?
输出看起来像:
1
0.37
0.1369
[etc.]
官方Perl高尔夫规则:
答案 0 :(得分:15)
使用perl 5.10.0及更高版本:
perl -E'say 0.37**$_ for 0..8'
对于较旧的perls,您没有say
和-E,但这可行:
perl -le'print 0.37**$_ for 0..8'
更新:第一个解决方案由30个击键组成。删除第一个0给出了29.可以保存另一个空格,所以我的最终解决方案是28笔:
perl -E'say.37**$_ for 0..8'
答案 1 :(得分:6)
perl -le'map{print.37**$_}0..8'
31个字符 - 我没有5.10用“说”试用明显的改进,但这是28:
perl -E'map{say.37**$_}0..8'
答案 2 :(得分:4)
seq 9|perl -nE'say.37**$_'
26 - 是的,这是作弊。 (是的,我正在从1到9做权力.0到8只是愚蠢。)
答案 3 :(得分:3)
只是为了在Perl 6中获得乐趣:
28个字符:
perl6 -e'.say for .37»**»^9'
27个字符:
perl6 -e'say .37**$_ for^9'
(至少基于当前的空白规则。)
答案 4 :(得分:2)
perl -e 'print .37**$_,"\n" for 0..9'
如果将-l添加到选项,则可以跳过“\ n”部分
答案 5 :(得分:1)
print join("\n", map { 0.37**$_ } (0..9));
答案 6 :(得分:1)
print.37**$_.$/for 0..8
如果你在提交之前砍掉程序,那么行程为23次。 :-P
答案 7 :(得分:0)
perl -e "for(my $i = 1; $i < 10; $i++){ print((.37**$i). \"\n\"); }"
快速入门。 :)
修复了换行符!