baru003のブログ

baruの雑記兼備忘録

AOJ 0159

・問題リンク The Best Body

・コメント
最も理想の体型の人をBMIを基に算出するプログラムです。
どこかにもあったBMIの問題を一度解いたことがあったので意外にサクサクって感じでした。

・ソース

import java.util.*;

public class P0159 {

	// BMI判定
	static double BmiJudge(double b) {
		if (b > 22) {
			b -= 22;
		} else {
			b = 22 - b;
		}
		return b;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int answerNumber = 0;
		int number;
		double height, weight;
		while (true) {
			int n = sc.nextInt();
			if (n == 0)
				break;
			// 既存BMI
			double judgeBmi = 10000;
			// データセット毎の実行
			for (int i = 0; i < n; i++) {
				// スペック入力
				number = sc.nextInt();
				height = sc.nextDouble();
				weight = sc.nextDouble();
				height /= 100;
				// BMI計算
				double bmi = weight / (height * height);
				// BMI判定
				bmi = BmiJudge(bmi);
				// 既存BMIとの比較判定
				if (judgeBmi > bmi) {
					judgeBmi = bmi;
					answerNumber = number;
				} else if ((judgeBmi == bmi) && (answerNumber > number)) {
					answerNumber = number;
				}
			}
			// output
			System.out.println(answerNumber);
		}
	}

}