はじめに
みなさんBMIをご存知でしょうか?
BMIとは、体重と身長の関係から算出される、ヒトの肥満度を表す体格指数である。一般にBMI (Body Mass Index) と呼ばれる。
引用wikipedia(一部改変)
簡単にいうと肥満度を表す指標のことです。高ければ高いほど肥満度が高いということです。しかし、この指標は筋肉量などは考慮に入れていないのでスポーツ選手はBMIが高くなりがちです。ですが、一般人はそんなに筋肉量もスポーツ選手と比較したときに多くないのでこの指標を使います。
今回はこの指標を使って体重を何キロ落としたら理想のBMIに成れるのかわかるようにコードを書いていきたいです。
BMIの算出式
BMI = 10000 \times体重\div身長\div身長
入力
体重(kg) 身長(cm) 理想のBMI(整数)
例)70 167 22
条件
現在のBMIが既に目標値を下回っている場合は0を出力して減量が必要ではないことを示す。
現在のBMIが目標値を上回っている場合は何キロ減量しなければ行けないのか出力する。
完成形
importmathi=list(map(int,input().split()))now_bmi=10000*i[0]/i[1]/i[1]now_bmi=math.ceil(now_bmi)goal_difference_bmi=now_bmi-i[2]goal_weight=1/10000*i[2]*i[1]*i[1]goal_weight=math.floor(goal_weight)goal_weight_difference=i[0]-goal_weightifgoal_difference_bmi<=0:print(0)elifgoal_difference_bmi>=0:print(round(goal_weight_difference))
解説
1
小数点以下の切り上げや切り捨てを行いたいので
importmath
mathモジュールを利用します。
2
複数の数値の入力を受け取るために
list(map(int,input().split()))
を使う。これは標準入力と言われていて競プロ勢がよく使うコードである。まずはこれで複数の数値を受け取ってそれを変数にリストで格納する。
3
入力されるのは理想のBMIなので今のBMIを計算する
now_bmi=10000*i[0]/i[1]/i[1]
4
BMIの小数点を繰り上げる。
now_bmi=math.ceil(now_bmi)
BMIの式を変形する
BMIの式を変形して、入力された身長と理想のBMIから何キロの体重が理想のBMIにおける体重なのか算出する。
理想の体重 = 1\div10000\times理想のBMI\times身長\times身長
実行結果
#入力
70 167 22
>=9
悲しいことに私はBMIを22にしようと9キロも減量しなければいけないことがわかりました😭
まとめ
簡単ですが理想のBMIから何キロ減量しなければいけないのか教えてくれるコードを書いてみました。式変形をして理想の体重を求めるという発想がなかったのでその部分で難航しました。