संकट:
आपका कार्य एक प्रोग्राम लिखना है जो इनपुट को ऊंचाई (मीटर में) और वजन (किलोग्राम में) के रूप में लेता है, और इसी बीएमडब्ल्यू श्रेणी को आउटपुट करता है।
बीएमआई आपकी ऊंचाई के लिए आपके वजन के अनुपात का एक उपाय है। यह कई लोगों के लिए दिनांकित और गलत है , लेकिन यहाँ कोई फर्क नहीं पड़ता!
बीएमआई की गणना निम्नलिखित समीकरण का उपयोग करके की जा सकती है:
BMI = (mass in kilograms) / (height in meters)^2
श्रेणियों को निम्नानुसार परिभाषित किया जाएगा:
बीएमआई <18.5: "अंडरवेट"
18.5 <= बीएमआई <25: "सामान्य"
25 <= बीएमआई: "अधिक वजन"
चुनौती के लिए, मैं सभी "चरम" श्रेणियों को अनदेखा कर रहा हूं। इसके अलावा, चूंकि कुछ संख्याएं जैसे "25" 2 श्रेणियों के बीच बैठती हैं, इसलिए मैंने सीमाओं को थोड़ा समायोजित किया ताकि एक निश्चित उत्तर हो।
आप एक फ़ंक्शन, या एक पूर्ण प्रोग्राम लिख सकते हैं।
इनपुट:
इनपुट किसी भी उचित रूप में हो सकता है। दो नंबर (या तार), या तो 2 अलग-अलग तर्क के रूप में, या एक स्ट्रिंग के रूप में। 2 नंबर की एक सरणी / सूची, "वजन" और "ऊंचाई" कुंजी के साथ एक शब्दकोश ... दशमलव मूल्यों का समर्थन किया जाना चाहिए। आप मान सकते हैं कि इनपुट हमेशा मान्य होगा (कोई नकारात्मक मान नहीं है, और ऊंचाई कभी 0 नहीं होगी)।
आउटपुट:
आउटपुट केस-असंवेदनशील श्रेणी के नामों वाला एक स्ट्रिंग होगा । स्ट्रिंग को मामले की अनदेखी करते हुए ठीक ऊपर की श्रेणी के नामों से मेल खाना चाहिए। यह स्टडआउट के लिए आउटपुट हो सकता है, लौटाया जा सकता है (किसी फ़ंक्शन के मामले में), या फ़ाइल में लिखा जा सकता है।
परीक्षण के मामले (वजन, ऊंचाई => परिणाम):
80, 1 => "Overweight"
80, 2 => "Normal"
80, 3 => "Underweight"
50, 1 => "Overweight"
50, 1.5 => "Normal"
50, 2 => "Underweight"
Edge Cases:
41, 1.5 => "Underweight" (18.2 BMI)
42, 1.5 => "Normal" (18.667 BMI)
56, 1.5 => "Normal" (24.889 BMI)
57, 1.5 => "Overweight" (25.3 BMI)
73, 2 => "Underweight" (18.25 BMI)
74, 2 => "Normal" (18.5 BMI)
99, 2 => "Normal" (24.75 BMI)
100, 2 => "Overweight" (25 BMI)
यहाँ कुछ छद्मकोश हैं जो एक उदाहरण कार्यान्वयन दिखाता है:
function bmi_category(weight, height):
var bmi = (weight / (height**2))
if (bmi < 18.5):
return "Underweight"
if (18.5 <= bmi < 25):
return "Normal"
if (25 <= bmi):
return "Overweight"
यह कोड-गोल्फ है, इसलिए सबसे कम संख्या में बाइट्स जीतती हैं।
(हां, अधिकांश भाषाओं में यह कार्य बहुत ही तुच्छ है। अधिकांश चुनौतियां हाल ही में सामान्य से कठिन प्रतीत होती हैं, इसलिए मैंने सोचा कि मैं एक अधिक सुलभ पोस्ट करूंगा)।
ध्यान दें! इस चुनौती को पोस्ट करने के एक घंटे बाद, मुझे श्रेणियों को थोड़ा संशोधित करना पड़ा क्योंकि कहा गया था कि "छेद" के रूप में श्रेणियाँ टिप्पणियों में बताई गई हैं। कृपया नई रेंज देखें।