ページ 11

教えてください

Posted: 2006年12月21日(木) 19:36
by 初心者
xとyをそれぞれ0から10まで1きざみで変え、そのすべてを組み合わせた平面上の11x11個の点(x,y)を考える.
これらの点のうちで、
y = - ( x -1 ) ^2 + 10(二次関数)
y = 3
の2つの線に囲まれた領域内(線上は除く)に含まれる点の数を出力するプログラムを作成せよ.


この問題を考えています。for文とか使うだろうなーと想像がつきますが、どのようにやったらいいかお手上げ状態です。
どなたかご教授ください。

Re:教えてください

Posted: 2006年12月21日(木) 22:17
by box
>y = - ( x -1 ) ^2 + 10(二次関数)
>y = 3

二次関数と直線のグラフを描いてみると、イメージがわいてきます。
与えられた二次関数は、(1, 10)を頂点とする放物線です。
y = 3はx軸に平行な直線で、そのy座標(3で一定)は、
放物線の頂点のy座標(10)よりも小さいです。

したがって、今回の問題は、(0, 0)~(10, 10)の121個の点のうち、
y座標が放物線より小さく、かつ直線より大きい点の個数を求めることに
帰着します。

xとyに関する二重のforループの中で、if文による大小判定を
行なうことになります。

Re:教えてください

Posted: 2006年12月21日(木) 23:11
by 初心者
ありがとうございます。