কম্পিউটার টিউটোরিয়াল

C++-এ শক্তি P দিয়ে ম্যাক্সিমাম লোক কিল করা


দেওয়া কাজ হচ্ছে শক্তি P দিয়ে সর্বোচ্চ কতজন লোক কিল করা যায় তা বের করা। একটি সারি বিবেচনা করুন যেখানে অসংখ্য লোক আছে এবং তাদের একটি ইনডেক্স নম্বর আছে ১ থেকে শুরু করে।

sth লোকের শক্তি হচ্ছে s2 দিয়ে রিপ্রেজেন্ট করা। একজন লোককে s শক্তি দিয়ে কিল করলে আপনার শক্তিও s কমানো হবে।

উদাহরণ দিয়ে বুঝি −

ইনপুট

P = 20

আউটপুট

3

ব্যাখ্যা

১ম লোকের শক্তি = 1 * 1 = 1 < 20, তাই ১ম লোক কিল করা যায়। বাকি শক্তি = P – 1 = 20 – 1 = 19 
২য় লোকের শক্তি = 2 * 2 = 4 < 19, তাই ২য় লোক কিল করা যায়। বাকি শক্তি = P – 4 = 19 – 4 = 15 
৩য় লোকের শক্তি = 3 * 3 = 9 < 15, তাই ৩য় লোক কিল করা যায়। বাকি শক্তি = P – 9 = 15 – 9 = 6 
৪র্থ লোকের শক্তি = 4 * 4 = 16 > 6, তাই ৪র্থ লোক কিল করা যায় না। Output = 3

ইনপুট

30

আউটপুট

4

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি নিম্নরূপ

  • main() ফাংশনে P = 30 ইনিশিয়ালাইজ করা হয় int টাইপে যা শক্তি সংরক্ষণ করবে এবং Max() ফাংশনে পাস করা হয়।

  • Max() ফাংশনে s = 0 এবং P = 0 ইনিশিয়ালাইজ করা হয় int টাইপে।

  • j = 1 থেকে j * j <= P পর্যন্ত লুপ।

  • s = s + (j * j) এবং যদি s <= P হয় তবে ans-এ ১ যোগ, অন্যথায় ব্রেক।

  • ans রিটার্ন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

int Max(int P){ 
    int s = 0, ans = 0; 
    for (int j = 1; j * j <= P; j++){ 
        s = s + (j * j); 
        if (s <= P) 
            ans++; 
        else 
            break; 
    } 
    return ans; 
} 
//main function 
int main(){ 
    //Strength 
    int P = 30; 
    cout << "Maximum number of people that can be killed with strength P are: "<<Max(P); 
    return 0; 
}

আউটপুট

Maximum number of people that can be killed with strength P are: 4

  1. C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা

  2. C++-এ N*N চেসবোর্ডে সর্বোচ্চ বিশপ বসানো

  3. C++-এ k আপডেট দিয়ে ম্যাক্সিমাম এলিমেন্ট সমান করা

  4. C++-এ কণকোণী সমদ্বিবাহু ত্রিভুজে ফিট হতে পারা ম্যাক্সিমাম বর্গের সংখ্যা