Perl Golf:打印数字的幂

发布于 2024-07-07 14:38:26 字数 203 浏览 6 评论 0原文

打印出硬编码的 2 位小数的前 9 次幂(例如 0.37)的最短 Perl 一行代码是什么?每行都占一行?

输出将类似于:

1
0.37
0.1369
[etc.]

官方 Perl 高尔夫规则:

  1. 最小数量的(键)击球获胜
  2. 您的击球计数包括命令行

What's the shortest Perl one-liner that print out the first 9 powers of a hard-coded 2 digit decimal (say, for example, .37), each on its own line?

The output would look something like:

1
0.37
0.1369
[etc.]

Official Perl golf rules:

  1. Smallest number of (key)strokes wins
  2. Your stroke count includes the command line

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

痕至 2024-07-14 14:38:26

对于 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'

With perl 5.10.0 and above:

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

With older perls you don't have say and -E, but this works:

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

Update: the first solution is made of 30 key strokes. Removing the first 0 gives 29. Another space can be saved, so my final solution is this with 28 strokes:

perl -E'say.37**$_ for 0..8'
妥活 2024-07-14 14:38:26
perl -le'map{print.37**$_}0..8'

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

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

31 characters - I don't have 5.10 to try out the obvious improvement using "say" but this is 28:

perl -E'map{say.37**$_}0..8'
枯寂 2024-07-14 14:38:26
seq 9|perl -nE'say.37**$_'

26 - 是的,那是作弊。 (是的,我正在做 1 到 9 的幂。0 到 8 太傻了。)

seq 9|perl -nE'say.37**$_'

26 - Yes, that's cheating. (And yes, I'm doing powers from 1 to 9. 0 to 8 is just silly.)

内心激荡 2024-07-14 14:38:26

只是为了玩 Perl 6:

  1. 28 个字符:

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

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

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

Just for fun in Perl 6:

  1. 28 characters:

    perl6 -e'.say for .37»**»^9'
    
  2. 27 characters:

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

(At least based on current whitespace rules.)

挥剑断情 2024-07-14 14:38:26
perl -e 'print .37**$_,"\n" for 0..9'

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

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

If you add -l to options you can skip the ,"\n" part

大姐,你呐 2024-07-14 14:38:26
print join("\n", map { 0.37**$_ } (0..9));
print join("\n", map { 0.37**$_ } (0..9));
撩起发的微风 2024-07-14 14:38:26
print.37**$_.$/for 0..8

提交前砍程序的话23招。 :-P

print.37**$_.$/for 0..8

23 strokes if you chop the program before submitting. :-P

瞄了个咪的 2024-07-14 14:38:26
perl -e "for(my $i = 1; $i < 10; $i++){ print((.37**$i). \"\n\"); }"

只需快速输入即可。 :)

修复换行问题!

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

Just a quick entry. :)

Fixed to line break!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文