「資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問2回答」の編集履歴(バックアップ)一覧はこちら

資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問2回答」(2013/07/06 (土) 20:39:50) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#include(資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問2) * 正解 ウ * 解説 nの階乗とは、1からnまでの数を掛け算します。 ただし、0の階乗は1とします。 例 >3の階乗 >>3 * 2 * 1 = 6 >6の階乗 >>6 * 5 * 4 * 3 * 2 * 1 = 720 まず、nから1までの掛け算をする関数と考えると、「fact(n+1)」としている選択肢イエは除外できます。 選択肢イエをn=3で実行すると、「fact(n+1)」の部分が「fact(3+1)」「fact(4+1)」とどんどん数字が増えていき、永遠に計算が終わりません。 次に、0の階乗を1とする原則から考えて、「if n = 0 then return 0」としている選択肢アイは不正解です。 また、選択肢アをn=1で実行すると「fact(1 - 1)」の結果が「return 0」で 0 になるため、以下のようにすべての計算結果が 0 になってしまい、nの階乗を求められないため、選択肢アも不正解となります。 例 選択肢ア n=3の場合 >fact(3) >↓ >if n = 0 then return 0 else &color(red){return 3 * fact(3 - 1)} ※n=2で再起呼び出し >↓ >if n = 0 then return 0 else &color(red){return 2 * fact(2 - 1)} ※n=1で再起呼び出し >↓ >if n = 0 then return 0 else &color(red){return 1 * fact(1 - 1)} ※n=0で再起呼び出し >↓ >if n = 0 then &color(red){return 0} else return 0 * fact(0 - 1) ※n=0のため、「return 0」 選択肢アでは最終的に、「3 * 2 * 1 * 0 = 0」となってしまうため、不正解です。 選択肢ウの場合は「3 * 2 * 1 * 1 = 6」となります。 [[問3へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問3]] [[過去問2013年春午前1に戻る>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1]] [[問1に戻る>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問3]]
#include(資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問2) * 正解 ウ * 解説 nの階乗とは、1からnまでの数を掛け算します。 ただし、0の階乗は1とします。 例 >3の階乗 >>3 * 2 * 1 = 6 >6の階乗 >>6 * 5 * 4 * 3 * 2 * 1 = 720 まず、nから1までの掛け算をする関数と考えると、「fact(n+1)」としている選択肢イエは除外できます。 選択肢イエをn=3で実行すると、「fact(n+1)」の部分が「fact(3+1)」「fact(4+1)」とどんどん数字が増えていき、永遠に計算が終わりません。 次に、0の階乗を1とする原則から考えて、「if n = 0 then return 0」としている選択肢アイは不正解です。 また、選択肢アをn=1で実行すると「fact(1 - 1)」の結果が「return 0」で 0 になるため、以下のようにすべての計算結果が 0 になってしまい、nの階乗を求められないため、選択肢アも不正解となります。 例 選択肢ア n=3の場合 >fact(3) >↓ >if n = 0 then return 0 else &color(red){return 3 * fact(3 - 1)} ※n=2で再起呼び出し >↓ >if n = 0 then return 0 else &color(red){return 2 * fact(2 - 1)} ※n=1で再起呼び出し >↓ >if n = 0 then return 0 else &color(red){return 1 * fact(1 - 1)} ※n=0で再起呼び出し >↓ >if n = 0 then &color(red){return 0} else return 0 * fact(0 - 1) ※n=0のため、「return 0」 選択肢アでは最終的に、「3 * 2 * 1 * 0 = 0」となってしまうため、不正解です。 選択肢ウの場合は「3 * 2 * 1 * 1 = 6」となります。 [[問3へ>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問3]] [[過去問2013年春午前1に戻る>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1]] [[問1に戻る>資格試験/情報処理技術者試験/高度共通午前1/過去問2013年春午前1/問1]]

表示オプション

横に並べて表示:
変化行の前後のみ表示: