HOME»ソフトウェア開発技術者平成16年春期»午前問14
ソフトウェア開発技術者平成16年春期 午前問14
問14
整数x,y(x>y≧0)に対して,次のように定義された関数F(x,y)がある。F(231,15)の値は幾らか。ここで,x mod y はxをyで割った余りである。
- 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」になります。
最初の 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」になります。