もうちょっと,アルゴリズムを作成する話におつきあいいただきたい。ここでは,普段の生活において何気なく使っている問題の解決手順には,人間のカンが含まれている場合が多いということを指摘する。カンが含まれている手順は明確ではなく,アルゴリズムと呼べるものではない。したがってプログラムにすることもできない。次の問題を解く手順を,改めて紙の上に表してみよう。 【問題3】210と126の最大公約数を求めよ。 最大公約数とは,2つの整数に共通する約数の中で最大のもののことである。皆さんも中学校時代に解法を学んだはずである(図8[拡大表示])。 図8を見ると,最大公約数を求める手順が,ほんとど人間のカンに頼ったものであることがわかる。この人間に頼ったカンの部分は,プログラム・コードに置き換えることができない。それでは,カンの部分を分析して明確な手順に表せるかというと,それも難しいだろう*5。 2つの整数の
閏年は、4で割り切れ、100で割り切れるものを抜かし、それでも400で割り切れるものは含めたもの。コードにすると、以下の通り。 bool bLeap = (nYear%4==0) && ((nYear%100!=0) || (nYear%400==0)) ちなみに、その月の最大の日にちは、以下のように求められる。 int nYear = 2004; // 年を入れる int nMonth = 5; // 月を入れる bool bLeap = (nYear%4==0) && ((nYear%100!=0) || (nYear%400==0)) int maxDay; switch(nMonth) { case 2: maxDay = bLeap ? 29 : 28; break; case 4: case 6: case 9: case 11: maxDay = 30; break; def
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く