मान लीजिए हम कीबोर्ड का उपयोग करके 'A' अक्षर लिखने का प्रयास करेंगे। हमारा लक्ष्य केवल चार कुंजियों का उपयोग करना है और टेक्स्ट फ़ील्ड पर अधिकतम 'ए' लिखने का प्रयास करना है। कुंजियाँ 'ए', 'सी', 'वी' और 'Ctrl' हैं।
A की अधिकतम संख्या लिखने के लिए, हम सभी का चयन करने के लिए Ctrl + A, कॉपी करने के लिए Ctrl + C और पेस्ट करने के लिए Ctrl + V का उपयोग करेंगे।
इसलिए, यदि इनपुट कीस्ट्रोक की संख्या की तरह है तो 7 है तो तीन बार प्रेस ए के रूप में आउटपुट 9 होगा।
फिर Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर कीस्ट्रोक्स <=6, तो
-
रिटर्न कीस्ट्रोक्स
-
-
n :=1 से 6 के लिए, करें
-
परिणाम [n-1] :=n
-
-
n :=7 से keyStrokes के लिए, करें
-
परिणाम [n-1] :=0
-
ब्रेकप्वाइंट के लिए :=n-3 डाउन टू 1, do
-
curr :=(n - ब्रेकप्वाइंट -1)*परिणाम[ब्रेकप्वाइंट - 1]
-
अगर curr> result[n-1], तब
-
परिणाम [एन -1]:=वर्तमान
-
-
-
-
परिणाम [कीस्ट्रोक्स - 1]
उदाहरण
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
#include<iostream> using namespace std; int keyNumbers(int keystrokes){ //find number of 'A's using 4 types of keys if (keystrokes <= 6) //if keystrokes are less than 7 return keystrokes; int result[keystrokes]; //store intermediate results for (int n=1; n<=6; n++) //upto 6 keystrokes, we need that number of keystrokes for max result[n-1] = n; for (int n=7; n<=keystrokes; n++){ //for 7th to higher result[n-1] = 0; //initially store 0 as result for (int breakPoint=n-3; breakPoint>=1; breakPoint--){ //find breakpoint to select, copy and paste int curr = (n-breakPoint-1)*result[breakPoint-1]; if (curr > result[n-1]) result[n-1] = curr; } } return result[keystrokes-1]; } int main(){ int keystrokes; cout << "Enter Number of keystrokes: "; cin >> keystrokes; cout << "Maximum Number of A's with "<<keystrokes << " keystrokes is: "<< keyNumbers(keystrokes)<<endl; }
इनपुट
7
आउटपुट
Enter Number of keystrokes: Maximum Number of A's with 0 keystrokes is: 0