当前位置: 首页 > news >正文

【洛谷算法题】P5714-肥胖问题【入门2分支结构】

花无缺

👨‍💻博客主页:@花无缺
欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 花无缺 原创

收录于专栏 【洛谷算法题】


文章目录

  • 【洛谷算法题】P5714-肥胖问题【入门2分支结构】
    • 🌏题目描述
    • 🌏输入格式
    • 🌏输出格式
    • 🌏样例 #1
      • 🌙样例输入 #1
      • 🌙样例输出 #1
    • 🌏样例 #2
      • 🌙样例输入 #2
      • 🌙样例输出 #2
    • 🌏提示
    • 🌏题解
    • 🌏总结


【洛谷算法题】P5714-肥胖问题【入门2分支结构】

题目链接:【深基3.例7】肥胖问题 - 洛谷

🌏题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m h 2 \dfrac{m}{h^2} h2m,其中 m m m 是指体重(千克), h h h 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.5 18.5 18.5:体重过轻,输出 Underweight
  • 大于等于 18.5 18.5 18.5 且小于 24 24 24:正常体重,输出 Normal
  • 大于等于 24 24 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0 0 0,不要输出后缀 0 0 0

请注意,保留六位有效数字不是保留六位小数。例如 123.4567 123.4567 123.4567 应该输出为 123.457 123.457 123.457 5432.10 5432.10 5432.10 应该输出为 5432.1 5432.1 5432.1

🌏输入格式

共一行。

第一行,共 2 2 2 个浮点数, m , h m, h m,h,分别表示体重(单位为 kg),身高(单位为 m)。

🌏输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

🌏样例 #1

🌙样例输入 #1

70 1.72

🌙样例输出 #1

Normal

🌏样例 #2

🌙样例输入 #2

100 1.68

🌙样例输出 #2

35.4308
Overweight

🌏提示

对于所有数据, 40 ≤ m ≤ 120 40\le m \le 120 40m120 1.4 ≤ h ≤ 2.0 1.4 \le h \le 2.0 1.4h2.0 m m m h h h 的小数点后不超过三位。

🌏题解

import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Scanner;public class P5714 {public static void main(String[] args) {Scanner input = new Scanner(System.in);// 体重,单位千克double m = input.nextDouble();// 身高,单位米double h = input.nextDouble();// BMI指数double bmi = m / (h * h);if (bmi < 18.5) {System.out.println("Underweight");} else if (bmi >= 18.5 && bmi < 24) {System.out.println("Normal");} else {BigDecimal b = new BigDecimal(String.valueOf(bmi)); BigDecimal divisor = BigDecimal.ONE;// 结果保留 6 位有效数字MathContext mc = new MathContext(6); System.out.println(b.divide(divisor, mc));System.out.println("Overweight");}input.close();}
}

🌏总结

这个题也不难,就是一个简单分支结构就可以解决问题了,但是有一个点需要注意就是题目要求的非 C++ 语言要将 BMI 值保留 6 位有效数字,而 6 位有效数字不代表 6 位小数。

有效数字是指从第一个不为 0 的数字开始后的数字,而且不算上末尾的 0。

例如:

1.3454位有效数字

0.041位有效数字

0.004533位有效数字

0.7830003位有效数字

对于 Java 语言来说,保留 n 位有效数字的方法:

public class Test {public static void main(String[] args) {Scanner in = new Scanner(System.in);double number = 0.06789;BigDecimal b = new BigDecimal(String.valueOf(number)); BigDecimal divisor = BigDecimal.ONE;// 保留几位有效数字就把 2 改成几MathContext mc = new MathContext(2);System.out.println(b.divide(divisor, mc));in.close();}
}

作者:花无缺(huawuque404.com)


🌸欢迎关注我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
🍻一起进步-刷题专栏:【洛谷算法题】
💻Java题解同步仓库:https://github.com/huawuque404/Java-solution
🥇往期精彩好文:
📢【CSS选择器全解指南】
📢【HTML万字详解】
你们的点赞👍 收藏⭐ 留言📝 关注✅
是我持续创作,输出优质内容的最大动力!
谢谢!

http://www.lryc.cn/news/240063.html

相关文章:

  • 促进材料基因工程基础理论、前沿技术和关键装备的发展和应用,第七届材料基因工程高层论坛将于12月重庆举办,龙讯旷腾出席会议
  • Cypress-浏览器操作篇
  • 短视频矩阵系统源码搭建部署分享
  • 科技赋能,创新发展!英码科技受邀参加2023中国创新创业成果交易会
  • Talk | UCSB博士生宋珍巧:基于人工智能的功能性蛋白质设计
  • C++基础从0到1入门编程(四)类和对象
  • 如何有效解决UDP协议传输问题实现快速安全的文件传输
  • Mac下载的软件显示文件已损坏,如何解决文件已损坏问题,让文件可以正常运行
  • 实战 - 在Linux上部署各类软件
  • Jenkins扩展篇-流水线脚本语法
  • 一个ETL流程搞定数据脱敏
  • 重生奇迹mu迹辅助什么好
  • 【bug 回顾】上传图片超时
  • Leetcode1410. HTML 实体解析器
  • 【Django使用】django经验md文档10大模块。第4期:Django数据库增删改查
  • SAP LU04记账更改通知单创建转储单报错:L3094 记帐修改没有份存在
  • Redis:Java客户端
  • 使用electron工具打包web端到PC端应用程序
  • Django框架环境的搭建(图文详解)
  • Java接口自动化测试系列[V1.0.0][概述]
  • indexedDB存储
  • 双向绑定与单向数据流之争,Solid会取代React吗
  • Java --- JVM之垃圾回收相关知识概念
  • 单节点服务架构
  • Ubuntu Server download
  • React 自定义hook 之 防抖和节流
  • CVE-2022-21661
  • 【Python】tensorboard实时查看模型训练过程的方法示例
  • Golang基础-面向对象篇
  • 全国的科技创新情况数据分享,涵盖2020-2022年三年情况