Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2010-01-21SRM459(DIV2)

SRM459 div2 第一問(250点)

| 15:31 | SRM459 div2 第一問(250点) - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク - SRM459 div2 第一問(250点) - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=10681&rd=14145

再帰的に生成される画像の、斜線部分の面積を求める問題。

これは割とすぐに出来ました。


public class RecursiveFigures {
	public static double getArea(int sideLength, int K)
	{
		double area = sideLength * sideLength * Math.PI / 4;
		double length = sideLength;
		int i;
		for (i = 1 ; i < K ; i++) {
			length *= (Math.sqrt(2) / 2);
			area -= length * length;
			area += length * length * Math.PI / 4;
		}
		return area;
	}
}

単純に四角形の面積を引きーの、円の面積を足しーの、の繰り返し。

今思うとdo-whileで良かったな、これ。

あと

length *= (Math.sqrt(2) / 2);

の部分は

length /= Math.sqrt(2);

こう書くか、ルート2をあらかじめ与えて

length /= 1.414213562373

て書いた方が良かったね。。。