PTA 用java编写 7-3 身体质量指数(BMI)测算

体重是反映和衡量一个人健康状况的重要标志之一,过胖和过瘦都不利于健康,BMI(身体质量指数)计算方法:体重(以千克为单位)除以身高(以米为单位)的平方。中国成人正常的BMI应在18.5-24之间,如果小于18.5为体重不足,如果大于等于24为超重,大于等于28为肥胖。请编写程序,测算身体状态。

输入格式:

两个数值:体重(以千克为单位),身高(以米为单位),数值间以空格分隔。例如:65.5 1.75。 注意:体重的世界纪录是727公斤,身高的世界纪录是2.72米。输入数据上限不得超过纪录,下限不得小于等于0;

输出格式:

输入数值超出范围 :输出“input out of range”。例如:-2 3或者125 5。 BMI小于18.5 :输出“thin”。 BMI大于等于18.5小于24 :输出“fit”。 BMI大于等于24小于28 :输出“overweight”。 BMII大于等于28 :输出“fat”。

输入样例0:

在这里给出一组输入。例如:

-2  8

输出样例0:

在这里给出相应的输出。例如:

input out of range

输入样例1:

在这里给出一组输入。例如:

70 1.75

输出样例1:

在这里给出相应的输出。例如:

fit

作者

蔡轲

单位

南昌航空大学

代码长度限制

20 KB

时间限制

400 ms

内存限制

64 MB

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        double m=sc.nextDouble();
        double n=sc.nextDouble();
        boolean f=false;
        if(m<=727&&m>0&&n<=2.72&&n>0){
            f=true;
        }
        else f=false;
        if(f==false) System.out.println("input out of range");
        else{
        double BMI=(m/n)*(1/n);
       if(BMI<18.5)  System.out.println("thin");
       if((BMI>=18.5)&&(BMI<24))  System.out.println("fit");
       if((BMI>=24)&&(BMI<28)) System.out.println("overweight");
       if(BMI>=28) System.out.println("fat");
    }
    }
}
 

### PTA 7-5 BMI 计算公式及实现方法 #### BMI 的定义与计算方式 BMI 是一种用于评估程度的标准,通过体重(以千克为单位)除以身高(以米为单位)的平方来计算。具体公式如下: \[ \text{BMI} = \frac{\text{体重 (kg)}}{\text{(身高 (m))^2}} \] 在中国成的范围内,BMI 值的意义可以分为以下几个区间[^1]: - 小于 18.5 表示 **体重不足**; - 大于等于 18.5 并小于 24 表示 **正常范围**; - 大于等于 24 并小于 28 表示 **超重**; - 大于等于 28 则表示 **肥**。 在其他一些场景下,可能采用不同的分类标准,例如: -BMI 在 18.5 至 25 之间时认为是 **体重最佳**; - 如果 BMI 小于 18.5,则被认定为 **体重过轻**; -BMI 超过 25,则被认为 **体重超重**[^2]。 #### 实现代码示例 以下是基于上述公式的 Java Python 编程实现方案。 ##### Java 版本实现 ```java import java.util.Scanner; public class BMICalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入您的体重(kg):"); double weight = scanner.nextDouble(); System.out.println("请输入您的身高(m):"); double height = scanner.nextDouble(); double bmi = calculateBMI(weight, height); String result = interpretBMI(bmi); System.out.printf("您的BMI值为: %.2f\n", bmi); System.out.println(result); } private static double calculateBMI(double weight, double height){ return weight / Math.pow(height, 2); } private static String interpretBMI(double bmi){ if (bmi < 18.5) { return "您属于体重不足"; } else if (bmi >= 18.5 && bmi < 24) { return "您的体重处于正常范围"; } else if (bmi >= 24 && bmi < 28) { return "您属于超重"; } else { return "您属于肥"; } } } ``` ##### Python 版本实现 ```python def calculate_bmi(weight, height): return weight / (height ** 2) def interpret_bmi(bmi_value): if bmi_value < 18.5: return "体重过轻" elif 18.5 <= bmi_value < 25: return "体重最佳" else: return "体重超重" if __name__ == "__main__": try: weight = float(input("请输入您的体重(): ")) height = float(input("请输入您的身高(英寸): ")) # 单位转换:磅 -> 千克, 英寸 -> 米 weight_kg = weight * 0.453592 height_m = height * 0.0254 bmi = int(calculate_bmi(weight_kg, height_m) * 100) / 100 interpretation = interpret_bmi(bmi) print(f"您的BMI值为: {bmi:.2f}") print(interpretation) except ValueError: print("输入错误,请确保输入的是数值!") ``` 以上两种语言分别实现了 BMI 的计算逻辑,并提供了针对不同区间的解释功能。Java 使用了 `Scanner` 类获取用户输入,Python 中则利用内置函数完成数据读取处理操作。 #### 结论 无论是哪种编程语言,核心都在于正确应用 BMI 公式并合理解析结果。需要注意的是,在实际开发过程中应考虑异常情况下的健壮性设计,比如非法字符输入等问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

এ᭄南书ོꦿృ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值