আসুন বিবেচনা করা যাক, আমরা কীবোর্ড ব্যবহার করে ‘A’ অক্ষরটি লেখার চেষ্টা করব। আমাদের লক্ষ্য মাত্র চারটি কী ব্যবহার করা এবং টেক্সট ফিল্ডে সর্বোচ্চ 'A' লেখার চেষ্টা করা। কীগুলি হল 'A', 'C', 'V' এবং '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