HOME»基本情報技術者試験掲示板»平成31年春季午前  問6
投稿する

[5300] 平成31年春季午前  問6

 皆さん頑張ろうさん(No.1) 
https://www.fe-siken.com/fekakomon.php

この問題の処理の順番が分かりません。
Aからpopした値をCにpushする。→ƒ()を呼び出す。→Cからpopした値をBにpushする。
上記の処理は一連の流れではないのでしょうか?
回答を見ると下記のように感じられます。
Aからpopした値をCにpushする。(Aがなくなるまで繰り返す)→ƒ()を呼び出す。

1回数字を移動させて下の行の処理に移る、と勝手に思っていましたが、Aから数字が無くなるまで「Aからpopした値をCにpushする。」という処理を繰り返す、という理解でしょうか?
2024.02.11 11:18
電タックさん(No.2) 
FE ブロンズマイスター
>上記の処理は一連の流れではないのでしょうか?
一連の流れです。

ある関数の中で、別の関数(再帰関数を含む)を呼び出すと
1.現在実行中の関数は実行の行で停止
2.呼び出された関数が開始
3.2の処理が終了
4.1の実行の行から再開
という流れになります。

○関数1
_処理A
_関数2呼び出し
_処理B

○関数2
_処理C
_関数3呼び出し
_処理D

○関数3
_処理E
_関数4呼び出し
_処理F

○関数4
_処理G

この時○関数1から処理を開始した場合の処理順は
A→C→E→G→F→D→B
となります。

これと同じ仕組みが再帰関数f()でおきています。
ちなみにですが
・A,C,EがスタックAからpopしてスタックCへpush
・B,D,EがスタックCからpopしてスタックBへpush
・Gは何もしない
と一致させています。
2024.02.11 13:22
返信投稿用フォーム

お名前

顔アイコン


本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)

投稿削除用のパスワード(20文字以内)

投稿プレビュー
※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop