题目的主要信息:

  • 输入体重(单位千克),身高(单位米)信息,根据计算出的BMI求出所属范围
  • BMI小于 18.5 属于"偏瘦",大于等于 18.5 小于 20.9 属于"苗条",大于等于 20.9 小于等于 24.9 属于"适中",超过 24.9 属于"偏胖"

具体做法:

BMI=/2BMI = 体重 / 身高^2,单位刚好是题目输入的千克和米。

根据输入的两个信息体重和身高,我们利用除法和乘法计算BMI值,然后利用连续的判断语句确定BMI所属范围,根据所属范围输出相应的中文描述。 alt 要注意范围的边界,有的是没有取等号有的是取了等号,图中数字再哪边哪边就取等

#include <iostream>
using namespace std;

int main() {
   
    double weight;
    double height;

    cin >> weight;
    cin >> height;
    double bmi = weight / (height * height); //BMI公式
    //判断组别
    if(bmi < 18.5)
        cout << "偏瘦" << endl;
    else if(bmi >= 18.5 && bmi < 20.9) //两个条件的用与
        cout << "苗条" << endl;
    else if(bmi >= 20.9 && bmi <= 24.9)
        cout << "适中" << endl;
    else
        cout << "偏胖" << endl;
	return 0;
}

复杂度分析:

  • 时间复杂度:O(1)O(1),直接计算,直接判断,没有循环,常数时间
  • 空间复杂度:O(1)O(1),直接计算,常数个变量,无额外空间