Perl golf:打印数字的幂



打印硬编码的2位小数(例如.37)的前9次方的最短Perl单行是什么?

输出看起来像:

1
0.37
0.1369
[etc.]

官方Perl高尔夫规则:

  1. (关键)击球次数最少获胜
  2. 您的笔划数包括命令行

使用perl 5.10.0及以上版本:

perl -E'say 0.37**$_ for 0..8'

对于旧的perl,你没有say和-E,但这很有效:

perl -le'print 0.37**$_ for 0..8'

更新:第一个解决方案由30个关键笔划组成。删除第一个0得到29。另一个空间可以节省,所以我的最终解决方案是用28笔:

perl -E'say.37**$_ for 0..8'
perl -le'map{print.37**$_}0..8'

31个字符-我没有5.10来尝试使用"say"的明显改进,但这是28:

perl -E'map{say.37**$_}0..8'
seq 9|perl -nE'say.37**$_'

26-是的,那是作弊。(是的,我的力量从1到9。0到8简直太傻了。)

在Perl ;中只是为了好玩;6:

  1. 28个字符:

    perl6 -e'.say for .37»**»^9'
    
  2. 27个字符:

    perl6 -e'say .37**$_ for^9'
    

(至少基于当前的空白规则。)

perl -e 'print .37**$_,"n" for 0..9'

如果在选项中添加-l,则可以跳过"\n"部分

print join("n", map { 0.37**$_ } (0..9));
print.37**$_.$/for 0..8

如果您在提交之前对程序进行了删减,则为23笔。:-P

perl -e "for(my $i = 1; $i < 10; $i++){ print((.37**$i). "n"); }"

只是一个快速输入。:)

固定换行!

相关内容

  • 没有找到相关文章

最新更新