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;
}

posted on 2018-12-21 22:31  湫叶  阅读(430)  评论(0编辑  收藏  举报

导航