偶数/奇数の判定

お写んぽ 

プログラムのアルゴリズムを調べていて見つけた質問。

OKWAVE というQ&A サイトへ「偶数/奇数の判定」という質問が投げられていました。リンク先をご覧頂くと分かるとおり、少しでもプログラミングをしたことがある人なら絶対に書かないコード。

この質問者、仕事できているんだろうかと心配になるレベルです。

最も一般的だと思われる方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//偶数なら true, 奇数なら false を返す関数
function IsEvenNum(a:Integer): Boolean;
begin
  if (a mod 2 = 0) then
    Result := true
  else
    Result := false;
end;
 
//もっと簡潔に書いてみる
function IsEvenNum(a:Integer): Boolean;
begin
  Result := (a mod 2 = 0);
end;

私は Delphi 使いなので、Pascal での偶数判定関数を書いてみました。2で割って余り(mod演算子)をチェックするという方法です。他にもビット演算を使う方法や、1桁目の数値をチェックするなど、方法は色々考えられますね。

「2で割り切れる数が偶数」というのは小学校で習ったはず。2で割ってみるというところまで考えが及ばなかったんでしょうね。



  1. やすたろ~

    2で割る発想がなかったというだけのことでしょうか。
    10000を超えたらどうするつもりだったんでしょう。
    質問者さん、納期がどうのって書いてあるから
    プロの仕事として請け負っているようですね。
    兄貴さんとしてはさぞ心配になったことでしょう。

    1. delphian

      プロがこの様な質問とは情けない限りです。
      というか、なぜ同僚や先輩に聞かないんでしょうね。
      ふっしぎー

  2. ask-evo

    偶数の定義も知らずに、何故今の仕事につくことになったのでしょう?^^;
    プログラム経験も、教育機関はおろか、趣味レベルでさえ皆無に思えます。
    いろいろ心配になります。

    ご本人もですが、職場も、そして納品される製品も…

    まるで、計算機叩いて出した結果を、Excelに手入力しているかのようです…

    1. delphian

      条件判定を 10000まで書く。これはもう不思議レベルです(笑
      一緒に仕事するとイライラする事になるんだろうなぁ