आइए विचार करें, हम कीबोर्ड का उपयोग करके 'A' अक्षर लिखने का प्रयास करेंगे। हमारा लक्ष्य केवल चार कुंजियों का उपयोग करना है और टेक्स्ट फ़ील्ड पर अधिकतम 'ए' लिखने का प्रयास करना है। कुंजियाँ 'ए', 'सी', 'वी' और 'Ctrl' हैं।
A की अधिकतम संख्या लिखने के लिए, हम सभी का चयन करने के लिए Ctrl + A, कॉपी करने के लिए Ctrl + C और पेस्ट करने के लिए Ctrl + V का उपयोग करेंगे।
इनपुट और आउटपुट
Input: Number of keystrokes, say 7 Output: Maximum Number of A's with 7 keystrokes is: 9 Press A three times. Then Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V
एल्गोरिदम
keyNumbers(keyStrokes)
इनपुट: कीस्ट्रोक्स की संख्या।
आउटपुट: इन कीस्ट्रोक्स का उपयोग करने वाले अक्षरों की अधिकतम संख्या।
Begin if keyStrokes <= 6, then return keyStrokes for n := 1 to 6, do result[n-1] := n done for n := 7 to keyStrokes, do result[n-1] := 0 for breakpoint := n-3 down to 1, do curr := (n – breakpoint - 1)*result[breakpoint - 1] if curr > result[n-1], then result[n - 1] := curr done done result[keyStrokes - 1] End
उदाहरण
#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; }
आउटपुट
Enter Number of keystrokes: 7 Maximum Number of A's with 7 keystrokes is: 9