人気ブログランキング | 話題のタグを見る
どうかく?org 初参戦
アルファベットの繰り上がり どう書く?org
Excelの桁表示は 1桁目はA、2桁目はB、以下C、D、 E…とすすみ、Zの次はAA AB AC…と続きます。AZの次はBAです。

この表記法で1から100までを表示してください。出力結果は下記のサンプルの「...」の部分に適切な文字列を埋めたものになります。

A, B, C, ... CU, CV

参戦してみました。Perlです。

sub succ {
my $d = shift;
$d ? succ( int( --$d / 26 ) ) . chr( ord('A') + $d % 26 ) : '';
}

print join ', ', map { succ $_ } 1 .. 100;


 他の人の投稿を読んで「Ruby には succ なんて便利メソッドがあるのねー、フムフム」なんて考えつつ書いてたら、全然succじゃない関数が出来上がってた罠。excel とか excel_column とかいう関数名がの方が適切ですね。

sub excel_column {
my $d = shift;
$d ? excel_column( int( --$d / 26 ) ) . chr( ord('A') + $d % 26 ) : '';
}

print join ', ', map { excel_column $_ } 1 .. 100;


7/15 追記
 他の人のコード見てたら、こんな解答があった。
$c=A;print$_?', ':'',$c++for 0..99

Perl の場合、Ruby のsuccに当たるメソッドの効果は、文字の変数に++演算子を適用するだけで出来てしまうらしい。全然知らんかった。というか Perl 空気読み杉。
by fkmn | 2007-07-14 23:25 | IT
<< キミならどう書く 2.0 - ... 無名関数をその場で実行 >>


とあるWebアプリケーションエンジニアの日記

by fkmn
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX