সমস্যা:
আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা ইনপুট হিসাবে উচ্চতা (মিটারে) এবং ওজন (কিলোগ্রামে) নেয় এবং সংশ্লিষ্ট বিএমআই বিভাগে আউটপুট দেয়।
BMI হ'ল আপনার উচ্চতার সাথে আপনার ওজনের অনুপাতের একটি পরিমাপ। এটি অনেক লোকের জন্য তারিখযুক্ত এবং সঠিক নয়, তবে এখানে বিষয়টি কিছু যায় আসে না!
BMI নিম্নলিখিত সমীকরণ ব্যবহার করে গণনা করা যেতে পারে:
BMI = (mass in kilograms) / (height in meters)^2
বিভাগগুলি নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হবে:
BMI <18.5: "কম ওজন"
18.5 <= BMI <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"
এটি কোড-গল্ফ, তাই বাইটের সংখ্যা সবচেয়ে কম।
(হ্যাঁ, বেশিরভাগ ভাষায় এই কাজটি অত্যন্ত নগণ্য। বেশিরভাগ চ্যালেঞ্জগুলি ইদানীং স্বাভাবিকের চেয়ে শক্ত বলে মনে হয়, তাই আমি ভেবেছিলাম যে আমি আরও অ্যাক্সেসযোগ্য পোস্ট করব)।
বিঃদ্রঃ! আমি এই চ্যালেঞ্জটি পোস্ট করার এক ঘন্টা পরে, মন্তব্যগুলিতে নির্দেশিত হিসাবে রেঞ্জগুলির "গর্ত" থাকার কারণে আমাকে রেঞ্জগুলি কিছুটা সংশোধন করতে হয়েছিল। দয়া করে নতুন ব্যাপ্তিগুলি দেখুন।