HOME»基本情報技術者試験掲示板»再帰的プログラムについて
投稿する

再帰的プログラムについて [4960]

 りんかさん(No.1) 
かんたん合格  基本情報技術者予想問題集の問題について質問です。
もしかすると日本語の読解力的とか一般常識的な質問かもしれないのでちょっと恥ずかしいのですが…どうしてもわからないのでご助力お願いしたいです。

下記設問について、解説を読んで解き方は分かったのですがそもそも何故再帰的プログラムだ!と問題文から判断できるのかが理解できません。
ここで判断できますという箇所がもしあれば、教えていただけると嬉しいです。
よろしくお願いします。


【予想問題② 問6】
元金p、年利rのn年後の元利合計は、次の式で表せる。(n≧0)

n年後の元利合計=p×(1+r)n   ※n乗

関数fvは、引数に元金p、年利r、年数nを指定し、n年後の元利合計を返す。

[プログラム]
○実数型:fv(実数型p,実数型r,整数型n)
if(n=0)
 return p

else
 return fv(p,r,n-1)×(1+r)

endif
2023.07.17 10:49
jjon-comさん(No.2) 
FE ゴールドマイスター
> [プログラム]
> ○実数型:fv(実数型p,実数型r,整数型n) …①
> if(n=0)
>   return p …③
> else
>   return fv(p,r,n-1)×(1+r) …②
> endif

関数fv()の処理内容の定義の中で …①
関数fv()自身が呼び出されていること …②
さらに、自分自身の呼び出しが無限に続くわけでなく
呼び出しの終わりとなる定義があること …③
から、私はこれを再帰呼び出しだと判断します。

年利の計算は再帰を使わない形でもプログラミングできるので
問題文だけからは再帰呼び出しだと判断できません。
2023.07.17 11:12
 りんかさん(No.3) 
〉jjon-comさん
ご回答ありがとうございます!
着目ポイントについて分かりやすく記載いただきとても助かりました。

①②③のうち、実際の問題は②のところが穴埋めになっていて選択肢から選ぶ形だったので、考え方としてはご教示いただいた流れより以下のようになるのかな?と思いました。

_ _ _ _ _ _ _ _ _ _ _ _ 
③で終了条件がある
(この段階で繰り返し処理するプログラムなのかな、とざっくり判断)

選択肢の中で繰り返し処理するプログラムを選ぶ
_ _ _ _ _ _ _ _ _ _ _ _ 

選択肢から答えを推測する、というのがあまり着想がなかったので、考え方の流れを教えていただけて嬉しかったです。ありがとうございます!
2023.07.17 12:09
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop