(此方法JZXX过不了,把round改成while才能过)
BMI
Description
小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。
Input
输入数据包含两个用空格隔开的正整数,分别表示身高和体重,身高的单位是厘米(cm),体重的单位为公斤(kg),1 米等于 100 厘米。
Output
输出数据第一行为一个字符串,“Good!”表示正常,“Too fat!”表示过重,“Too thin!”表示过轻,双引号不需要输出,感叹号都是英文字符。
如果体重正常则不用输出第二行,否则第二行输出一个正整数 w,表示此人离正常体重的最小整数差值,假如此人过重,则他要减去 w 公斤才能使得 BMI 指数小于等于 24,如果太轻则要增加 w 公斤才能使得BMI 指数大于等于 18。
Sample Input
样例1:
175 118
样例2:
173 50
样例3:
176 58
Sample Output
样例1:
Too fat!
45
样例2:
Too thin!
4
样例3:
Good!
Hint
【样例解释】
样例 1 为小X的身高体重,小X最少需要减掉 45 公斤体重才能达标;样例二为某大学生的身高体重,
他最少需要增加 4 公斤体重才达标;样例三是某学生的身高体重,他的 BMI 大约等于 18.72,正常!
【数据范围】
20%的数据,BMI 在正常范围内
另外 80%的数据,一半太胖,一半太瘦
100%的数据,身高<=250,体重<=300
#include<bits/stdc++.h>
using namespace std;
int main()
{
double cm,kg,bmi;
cin>>cm>>kg;
cm=cm/100;
bmi=kg/(cm*cm);
if(bmi>=18&&bmi<=24)
{
cout<<"Good!"<<endl;
}
else
{
if(bmi<18)
{
cout<<"Too thin!"<<endl;
cout<<round(cm*cm*18-kg)<<endl;
}
else
{
cout<<"Too fat!"<<endl;
cout<<round(kg-cm*cm*24)<<endl;
}
}
return 0;
}