アカウント名:
パスワード:
if (x.eq.1) return 0if (x.eq.2) return 1if (x.eq.4) return 2if (x.eq.8) return 3(中略)if (x.eq.512) return 9stop 'illegal x'
いや、ちゃんとロジックも追いましたが
不正な値が来たら止まるようなプログラムを作って
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
別解 (スコア:1)
ぼくがなにか勘違いしているのかな。
love && peace && free_software
t-nissie
Re: (スコア:1)
ちゃんとロジックを追えば、私が書いた解もx=1に対応している事が判ったはずです。
それはともかく。
.
もちろん、このコードは正しいですし、おそらく学生演習などでは90%ぐらいはこのコードを書いてくるでしょう。でも、私が担当ならば、この解に対する点は60点です(あ、一応単位取得最低点数が60点として、ね)。
このコードは見通しがよいとは到底言えません。正確には「メンテナンス性のある見通し」は絶無だ、と評価します。一方で試行錯誤の後もありません。どちらかがあれば、残り40点を付与するのですが。
.
if/else (含む switch
fjの教祖様
Re: (スコア:1)
> 2**a であることが保障されている値 x から a を求めるのだそうだ。
> x = 2**a で 1≦a≦9 が保障されていると言うことは、
の2つがあるかぎり、ifで書いても(書いた方が)見通しはよいし
if/then/elseのネストは起きないわけで。
逆にぼくはこの2つの保証が信じられるほどナイーブではないんで、
不正な値が来たら止まるようなプログラムを作って欲しいです。
love && peace && free_software
t-nissie
Re:別解 (スコア:1)
ならばx=1 の場合は a=0なのだから「問題の段階でこない」か、「a=0が返る」のどちらであっても正しくなる事が判るではないか。
それは逆の意味でナイーブ過ぎるな。
むやみやたらと止まられるのも困る。
ちなみに。top bit 以外を全部落とす方法はある。問題の定義を変えるのならば、そちらの方がよろしかろう。
fjの教祖様