Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คีย์บอร์ด 4 ปุ่มใน C++


สมมติว่าเราจะพยายามเขียนตัวอักษร 'A' โดยใช้แป้นพิมพ์ เป้าหมายของเราคือใช้เพียงสี่ปุ่มและพยายามเขียน 'A' สูงสุดลงในช่องข้อความ ปุ่มคือ 'A', 'C', 'V' และ 'Ctrl'

ในการเขียนจำนวนสูงสุดของ A เราจะใช้ Ctrl + A เพื่อเลือกทั้งหมด, Ctrl + C เพื่อคัดลอก และใช้ Ctrl + V เพื่อวาง

ดังนั้น หากอินพุตเท่ากับจำนวนการกดแป้นพิมพ์เท่ากับ 7 เอาต์พุตจะเป็น 9 เมื่อกด A สามครั้ง

จากนั้น Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้ากดแป้น <=6 แล้ว

    • ส่งคืน keyStrokes

  • สำหรับ n :=1 ถึง 6 ทำ

    • ผลลัพธ์[n-1] :=n

  • สำหรับ n :=7 ถึงการกดแป้น ทำ

    • ผลลัพธ์[n-1] :=0

    • สำหรับเบรกพอยต์ :=n-3 เหลือ 1 ทำ

      • curr :=(n – เบรกพอยต์ - 1)*ผลลัพธ์[เบรกพอยต์ - 1]

      • ถ้าcurr> result[n-1] แล้ว

        • ผลลัพธ์[n - 1] :=สกุลเงิน

  • ผลลัพธ์[keyStrokes - 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