कार्य को देखते हुए अधिकतम संख्या में लोगों को ढूंढना है जिन्हें ताकत के साथ पीटा जा सकता है। अनंत लोगों के साथ एक पंक्ति पर विचार करें और उनमें से प्रत्येक के पास 1 से शुरू होने वाली अनुक्रमणिका संख्या है।
S th . की ताकत व्यक्ति का प्रतिनिधित्व s 2 . द्वारा किया जाता है . ताकत से किसी को मारने के बाद आपकी ताकत भी s से कम हो जाती है।
आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है -
इनपुट
P = 20
आउटपुट
3
स्पष्टीकरण
Strength of 1st person = 1 * 1 = 1 < 20, therefore 1st person can be killed. Remaining strength = P – 1 = 20 – 1 = 19 Strength of 2nd person = 2 * 2 = 4 < 19, therefore 2nd person can be killed. Remaining strength = P – 4 = 19 – 4 = 15 Strength of 3rd person = 3 * 3 = 9 < 15, therefore 3rd person can be killed. Remaining strength = P – 9 = 15 – 9 = 6 Strength of 4th person = 4 * 4 = 16 > 6, therefore 4th person cannot be killed. Output = 3
इनपुट
30
आउटपुट
4
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
main() फंक्शन में P =30 टाइप int को इनिशियलाइज़ करें क्योंकि यह मैक्स () फंक्शन में स्ट्रेंथ और पासिट को स्टोर करेगा।
-
मैक्स () फ़ंक्शन में s =0 और P =0 दोनों प्रकार के int प्रारंभ करें।
-
j =1 से j * j <=P
. तक लूप -
s =s + (j * j) रखें और यदि s <=P उत्तर में 1 जोड़ें, अन्यथा विराम;
-
उत्तर लौटें।
उदाहरण
#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