1 条题解

  • 0
    @ 2029-10-3 5:01:19

    【深基3.例7】肥胖问题

    解题思路

    用 double 计算 BMI=m/(h*h)。小于 18.5 输出 Underweight,否则小于 24 输出 Normal,剩下先输出 BMI 再输出 Overweight。

    正确性说明

    按从小到大判断得到互不重叠的三个区间,恰好覆盖全部可能的 BMI。

    易错点

    只有肥胖分支打印 BMI;使用 cout 默认六位有效数字,不设置 fixed。

    复杂度

    时间 O(1),空间 O(1)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        double m, h;
        cin >> m >> h;
        double bmi = m / (h * h);
        if (bmi < 18.5)
            cout << "Underweight\n";
        else if (bmi < 24)
            cout << "Normal\n";
        else
            cout << bmi << "\nOverweight\n";
        return 0;
    }
    
    • 1