ソフトウェア開発技術者平成16年春期 午前問14

問14

整数x,y(x>y≧0)に対して,次のように定義された関数F(x,y)がある。F(231,15)の値は幾らか。ここで,x mod y はxをyで割った余りである。
14.png/image-size:304×55
  • 2
  • 3
  • 5
  • 7
  • [出題歴]
  • 基本情報技術者 H19秋期 問15
  • 基本情報技術者 H28秋期 問7

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

「y>0 のとき F(x,y) = F(y,x mod y) 」と決められているということは、左辺を右辺の形に変換できるということです。すなわち、第1引数には左辺の第2引数を与え、右辺の第2引数には x mod y を与えて計算すればよいわけです。

最初の F(231,15) … x=231、y=15の場合、231 mod 15 = 6 ですから F(231,15) = F(15,6) です。これを繰り返しながら最終的な値を求めていきます。

 F(231,15)
=F(15,231 mod 15)=F(15,6)
=F(6,15 mod 6)=F(6,3)
=F(3,6 mod 3)=F(3,0)
=3

したがって正解は「3」になります。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop