SkillStack
テクノロジ系5 / 80問

応用情報技術者試験 令和6年度 春期 午前 問5

正の整数 M に対して、次の二つの流れ図に示すアルゴリズムを実行したとき、結果 x の値が等しくなるようにしたい。a に入れる条件として、適切なものはどれか。

応用情報技術者試験 令和6年度 春期 午前 問5の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

左の流れ図では、xを1で初期化し、nをMから1まで1ずつ減らしながらx←x×nを実行します。xの変化は、1→M→M×(M-1)→…→M×(M-1)×…×1となるので、結果はM!です。

右の流れ図では、初期状態がx=1、n=1です。1回目の演算後はx=1、n=2、2回目の演算後はx=2、n=3となります。一般に、値kを乗算した直後はx=k!となり、その後のn←n+1によってn=k+1になります。Mを乗算した直後にはx=M!、n=M+1です。この時点で終了するにはn>Mを真にすればよいため、条件はウです。Mを乗算する前はn≦Mなので、終了しません。

アのn<Mは誤りです。判定時のnは既に増分された後なので、M>2では最初の乗算直後に終了し、M≦2では終了条件を満たせない場合があります。

イのn>M-1は誤りです。整数ではn≧Mと同じなので、通常はM-1を乗算した後、nがMになった時点で終了し、結果が(M-1)!になります。

エのn>M+1は誤りです。Mを乗算した後のn=M+1では終了せず、さらにM+1まで乗算してから終了するので、結果は(M+1)!になります。

【ポイント】 後判定型の繰返しでは、ループ本体を実行してから終了条件を評価します。 判定前にnが1増えている点に注意し、乗算した値と判定時のnを分けて追跡します。 階乗計算では、どの値まで乗算したかを確認すると誤差を防げます。

出典:令和6年度 春期 応用情報技術者試験 午前 問5
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める