BMI
题目描述
小X经过刻苦训练获得了 NOIP 的国一,并参加了 NOI,获得了保送资格,被保送到南都大学学习,进入大学以后,小X觉得中学编程太辛苦了,应该好好犒劳一下自己,刚好南都大学周边美食如云,吃不胜吃,小X不到一个学期就长了 30 多斤,四年下来已经胖得不成样子,体重一举飙升到了 118kg,同时血压也升到了 128mmHg,离正常血压的上限也不远了,数字都很吉祥,但身体状况已呈险兆,上个楼梯就心慌气促,于是下定决心要减重,正所谓胖子不是一天就能吃成的,瘦下来也不可能饿几天就达到,小X的短期目标就是减到像 Q 老师那么瘦,尽管也从没有人夸过 Q 老师瘦!当然小X的最终目标是减到正常体重,正常体重怎么算呢?国际通用的标准是 BMI 指数,以下科普一下 BMI 指数:BMI 指数=体重/(身高^2),正常范围在 18 到 24 之间,小于 18 过轻,大于 24 过重。这里体重的单位为公斤(kg),身高的单位是米(m)。如费德勒的身高为 185 厘米,体重为 85 公斤,其 BMI=85/(1.85*1.85)≈24.8356。
输入
输入数据包含两个用空格隔开的正整数,分别表示身高和体重,身高的单位是厘米(cm),体重的单位为公斤(kg),1 米等于 100 厘米。
输出
输出数据第一行为一个字符串,“Good!”表示正常,“Too fat!”表示过重,“Too thin!”表示过轻,双引号不需要输出,感叹号都是英文字符。
如果体重正常则不用输出第二行,否则第二行输出一个正整数 w,表示此人离正常体重的最小整数差值,假如此人过重,则他要减去 w 公斤才能使得 BMI 指数小于等于 24,如果太轻则要增加 w 公斤才能使得BMI 指数大于等于 18。
样例输入
复制样例数据
175 118
样例输出
Too fat!
45
提示
20%的数据,BMI 在正常范围内
另外 80%的数据,一半太胖,一半太瘦
100%的数据,身高<=250,体重<=300
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
double h,w,ww;
double b;
scanf("%lf %lf",&h,&w);
b=w/((h/100)*(h/100));
if(b>24||b<18)
{
if(b>24)
{
printf("Too fat!\n");
ww=24*((h/100)*(h/100));
}
if(b<18)
{
printf("Too thin!\n");
ww=18*(h*1.0/100*h*1.0/100);
}
printf("%.0f\n",ceil(abs(ww-w)));
}
else
{
printf("Good!\n");
}
return 0;
}