頭の体操(を、頭を使わずにどうにかする)

おおにしさんが何やら面白そうなことをしていたので、perlでやってみた(他に方法を知らない)。

#!/usr/bin/perl -w
use strict;
for (1111 .. 9999){
    my @can = split(//);
    next if ($can[0] > $can[1] || $can[2] > $can[3]);
    if (2 * $can[0] * $can[1] - $can[2] * $can[3] == 7){
        print ("$can[0], $can[1], $can[2], $can[3]\n");
    }
}

組み合わせのチェックをする方法がよくわからなかったので、2カ所だけチェックしてるアレな感じ。rubyのsetみたいなのってperlでどうやるんですかね。

どうでもいいけどこのブログ、「よくわかんないけど」って書きすぎですね。

One thought on “頭の体操(を、頭を使わずにどうにかする)

  • 2010/12/29 at 14:25
    Permalink

    #!/usr/bin/perl -w
    use strict;
    print join(“\n”,
    map {join(“,”,(split//,$_->[0]))}
    grep{$_->[1] == 7 && ($_->[2]->[0] [2]->[1]) && ($_->[2]->[2] [2]->[3]) }
    map { [$_->[0], 2 * $_->[1]->[0] * $_->[1]->[1] – $_->[1]->[2] * $_->[1]->[3],$_->[1]]}
    map { [$_,[split//]]}
    (1111 .. 9999)),”\n”;

    one linerでやってみた。
    ドヤ顔しようと思ったけどこれ以上は分からんw

Comments are closed.