Computer >> Máy Tính >  >> Lập trình >> C ++

Bàn phím 4 phím trong C ++

Giả sử chúng ta sẽ cố gắng viết chữ ‘A’, sử dụng bàn phím. Mục tiêu của chúng tôi là chỉ sử dụng bốn phím và cố gắng viết tối đa chữ ‘A’ trên trường văn bản. Các phím là ‘A’, ‘C’, ‘V’ và ‘Ctrl’.

Để viết số A tối đa, chúng ta sẽ sử dụng Ctrl + A để chọn Tất cả, Ctrl + C để sao chép và Ctrl + V để dán.

Vì vậy, nếu đầu vào giống như số lần nhấn phím là 7 thì đầu ra sẽ là 9 khi nhấn A ba lần.

Sau đó Ctrl + A, Ctrl + C, Ctrl + V, Ctrl + V

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu keyStrokes <=6, thì

    • trả lại các tổ hợp phím

  • cho n:=1 đến 6, thực hiện

    • kết quả [n-1]:=n

  • for n:=7 to keyStrokes, thực hiện

    • kết quả [n-1]:=0

    • cho breakpoint:=n-3 xuống 1, thực hiện

      • curr:=(n - breakpoint - 1) * result [breakpoint - 1]

      • if curr> result [n-1], then

        • result [n - 1]:=curr

  • kết quả [keyStrokes - 1]

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

7

Đầu ra

Enter Number of keystrokes: Maximum Number of A's with 0 keystrokes is: 0