Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. โปรแกรม C++ หาการดำเนินการขั้นต่ำทำให้ตัวเลขบนนาฬิกาเป็น 0

    สมมติว่าเรามีสตริงตัวเลข S ความยาว n หลัก S แทนนาฬิกาดิจิทัลและสตริงทั้งหมดแสดงจำนวนเต็ม 0 ถึง 10^n - 1 หากมีหลักน้อยกว่า จะแสดง 0 นำหน้า ทำตามการดำเนินการ: ลดตัวเลขบนนาฬิกาลง 1 หรือ สลับตัวเลขสองหลัก เราต้องการให้นาฬิกาแสดง 0 ด้วยจำนวนการดำเนินการน้อยที่สุด เราต้องนับจำนวนการดำเนินการที่ต้องใช้

  2. โปรแกรม C++ หาขนาดอาร์เรย์ที่ลดแล้วหลังการดำเนินการลบ

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ พิจารณาว่ามีรหัสผ่าน n จำนวนเต็มบวก เราใช้การดำเนินการต่อไปนี้กับอาร์เรย์ การดำเนินการคือ ลบสององค์ประกอบที่ติดกันซึ่งไม่เท่ากัน แล้ววางผลรวมของพวกมันที่ตำแหน่งนั้น การดำเนินการนี้จะลดขนาดอาร์เรย์ลง 1 เราต้องหาความยาวสั้นที่สุดของอาร์เรย์หลังจากดำเนินการเหล

  3. โปรแกรม C++ นับการดำเนินการขั้นต่ำทำให้ n กลายเป็น 1

    สมมติว่าเรามีตัวเลข n เราทำการดำเนินการใดการหนึ่งได้ไม่จำกัดครั้ง: แทนที่ n ด้วย n/2 เมื่อ n หาร 2 ลงตัว แทนที่ n ด้วย 2n/3 เมื่อ n หาร 3 ลงตัว แทนที่ n ด้วย 4n/5 เมื่อ n หาร 5 ลงตัว เราต้องนับจำนวนการเคลื่อนที่ขั้นต่ำที่ต้องใช้เพื่อทำให้ตัวเลขกลายเป็น 1 หากทำไม่ได้ ให้คืนค่า -1 เช่น ถ้าค่าที่ป้อ

  4. โปรแกรม C++ หาลำดับดัชนีสมาชิกทีม

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ และตัวเลข k มีนักเรียน n คนในชั้น คะแนน (rating) ของนักเรียนคนที่ i คือ A[i] เราต้องจัดทีม k คน โดยที่คะแนนของสมาชิกทุกคนต้องแตกต่างกัน หากทำไม่ได้ ให้คืนค่า Impossible มิฉะนั้นคืนค่าลำดับดัชนี เช่น ถ้าค่าที่ป้อนเข้าเป็น A = [15, 13, 15, 15, 12]; k = 3 ผลล

  5. โปรแกรม C++ นับจำนวนตัวเลขฐานสองขั้นต่ำแทนค่า n

    สมมติว่าเรามีตัวเลข n ตัวเลขเป็น ฐานสองทศนิยม (binary decimal) ถ้าเป็นจำนวนเต็มบวก และตัวเลขทุกหลักในการเขียนทศนิยมเป็น 0 หรือ 1 เท่านั้น เช่น 1001 (หนึ่งพันหนึ่ง) เป็น binary decimal แต่ 1021 ไม่ใช่ จากตัวเลข n เราต้องแทน n เป็นผลรวมของ binary decimal บางจำนวน (ไม่จำเป็นต้องต่างกัน) จากนั้นคำนวณจำน

  6. โปรแกรม C++ นับวิธีที่ผู้เล่นสองคนชนะหรือเสมอในเกมทอยลูกเต๋า

    สมมติว่าเรามีตัวเลขสองตัว a และ b อมลและบิมลเล่นเกม ทั้งคู่เขียนจำนวนเต็ม 1 ถึง 6 แล้วทอยลูกเต๋า ผู้ที่ตัวเลขที่เขียนใกล้เคียงกับลูกเต๋ามากกว่า ชนะรอบนั้น หากทั้งคู่มีความต่างเท่ากัน ถือว่าเสมอ ถ้าอมลเขียน a และบิมลเขียน b เราต้องนับจำนวนวิธีที่เป็นไปได้ที่อมลจะชนะ จำนวนวิธีเสมอ และจำนวนวิธีที่บิมลช

  7. โปรแกรม C++ หาเหรียญขั้นต่ำซื้อสตริงไบนารี

    สมมติว่าเรามีตัวเลข 3 ตัว c0, c1 และ h และสตริงไบนารี S เราสามารถพลิกบิตใน S ใดๆ ได้ ต้องจ่าย h เหรียญต่อการเปลี่ยนแปลง หลังจากเปลี่ยนแปลงบางอย่าง (อาจเป็นศูนย์) เราต้องการซื้อสตริงนี้ เพื่อซื้อสตริง ต้องซื้อทุกตัวอักษรในมัน เพื่อซื้อบิต 0 ต้องจ่าย c0 เหรียญ ซื้อบิต 1 จ่าย c1 เหรียญ เราต้องหาจำนวนเห

  8. โปรแกรม C++ นับจำนวนโจทย์ที่แก้ได้จากปลายซ้ายหรือขวาของรายการ

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ และอีกตัวเลข k หนึ่ง ต้องการมีโจทย์ n ข้อในการแข่งขัน ทักษะการแก้โจทย์ของอมลคือ k อมลแก้โจทย์จากปลายซ้ายหรือขวาของรายการเสมอ และเขาไม่สามารถแก้โจทย์ที่ความยากมากกว่า k ได้ เขาหยุดเมื่อโจทย์ทั้งสองข้างมีความยากมากกว่า k เราต้องนับว่าเขาแก้โจทย์ได้กี่ข้อ A[i]

  9. โปรแกรม C++ หาอาร์เรย์สมบูรณ์ขนาด n ที่ทุกสับอาร์เรย์เป็นอาร์เรย์ดี

    สมมติว่าเรามีตัวเลข n อาร์เรย์ B ถือว่า ดี ถ้าผลรวมขององค์ประกอบหารด้วยความยาวของอาร์เรย์ลงตัว เราบอกว่าอาร์เรย์ A ขนาด n เป็น สมบูรณ์ (perfect) ถ้าสับอาร์เรย์ (subarray) ที่ไม่ว่างทุกตัวของ A เป็นอาร์เรย์ดี และองค์ประกอบใน A อยู่ในช่วง 1 ถึง 100 จากตัวเลข n เราต้องหาอาร์เรย์ A ที่เป็นสมบูรณ์ เช่น

  10. โปรแกรม C++ ตรวจสอบ 3 รายการว่าชอบกันแบบวนรอบหรือไม่

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ มีเครื่องบิน n ลำบนโลก หมายเลข 1 ถึง n เครื่องบินหมายเลข i ชอบเครื่องบิน A[i] A[i] != i เราต้องตรวจสอบว่ามีเครื่องบิน 3 ลำคือ p, q, และ r ที่ p ชอบ q, q ชอบ r และ r ชอบ p หรือไม่ เช่น ถ้าค่าที่ป้อนเข้าเป็น A = [2, 4, 5, 1, 3] ผลลัพธ์จะได้ True เพราะ triple

  11. โปรแกรม C++ หาการเรียงสับเปลี่ยน (Permutation) ที่มี yอดอด (Peaks) n จุด

    A[i+1] หากทำไม่ได้ ให้คืนค่า -1 เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 5; k = 2 ผลลัพธ์จะได้ [2, 4, 1, 5, 3] คำตอบอื่นก็ได้ ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้: (n - 1) / 2 แล้ว:    คืนค่า -1 กำหนดอาร์เรย์ a ขนาด: 101. สำหรับ i := 1 เมื่อ i <= n เพิ่ม i ทีละ 1 ทำ: &nb

  12. โปรแกรม C++ หาค่ามัธยฐานสูงสุดขององค์ประกอบที่ผลรวมเท่ากับ s

    สมมติว่าเรามีตัวเลขสองตัว n และ s เราต้องหาค่ามัธยฐาน (median) สูงสุดที่เป็นไปได้ของอาร์เรย์ที่มี n องค์ประกอบไม่ติดลบ โดยที่ผลรวมขององค์ประกอบเท่ากับ s เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 3; s = 5 ผลลัพธ์จะได้ 2 เพราะสำหรับอาร์เรย์ [1, 2, 2] ผลรวมคือ 5 และมัธยฐานคือ 2 ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหาน

  13. โปรแกรม C++ ตรวจสอบทำให้สตริงสองตัวเท่ากันได้โดยสลับจากสตริงที่สาม

    สมมติว่าเรามีสตริง 3 ตัว S, T และ U ความยาวเท่ากันคือ n สำหรับทุกดัชนี i ในช่วง 0 ถึง n-1 เราต้องสลับ U[i] กับ S[i] หรือ T[i] ดังนั้นรวมแล้วเราทำการสลับ n ครั้ง เราต้องตรวจสอบว่าหลังจาก n การดำเนินการดังกล่าว เราสามารถทำให้สตริง S เหมือน T ทุกประการได้หรือไม่ เช่น ถ้าค่าที่ป้อนเข้าเป็น S = abc; T =

  14. โปรแกรม C++ นับนาทีขั้นต่ำเพิ่มความยาวไม้ให้เป็นสามเหลี่ยม

    สมมติว่าเรามีตัวเลข 3 ตัว a, b และ c มีไม้ 3 แทง ความยาวคือ a, b และ c ในหนึ่งนาที เราสามารถเลือกไม้แทงหนึ่งแทงและเพิ่มความยาว 1 ซม. แต่ไม่สามารถหักไม้ได้ เราต้องนับนาทีขั้นต่ำที่ต้องเพิ่มความยาว และสามารถสร้างสามเหลี่ยมได้จากพวกมัน c ดังนั้น 1 นาทีเพียงพอ ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหานี้ เราจ

  15. โปรแกรม C++ นับจำนวนขั้นบันไดและจำนวนขั้นในแต่ละขั้นบันได

    สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ มานั่น อมลปีนบันไดภายในอาคารหลายชั้น ทุกครั้งที่ปีน เริ่มนับจาก 1 เช่น ถ้าเขาปีน 2 ช่วงบันได 3 ขั้นและ 4 ขั้น เขาจะพูดตัวเลข 1, 2, 3, 1, 2, 3, 4 ในอาร์เรย์ A ตัวเลขแทนหมายเลขขั้นที่อมลพูด เราต้องนับจำนวนช่วงบันไดที่เขาปีน และพิมพ์จำนวนขั้นในแต่ละช่วงบันได

  16. โปรแกรม C++ เลือกตัวเลขบางส่วนที่ไม่มีสับเซตผลรวมเท่ากับ k

    สมมติว่าเรามีตัวเลขสองตัว n และ k เราต้องเลือกจำนวนสูงสุดขององค์ประกอบที่แตกต่างกันจาก 1 ถึง n โดยที่ไม่มีสับเซต (subset) ใดที่ผลรวมเท่ากับ k หากพบ ให้คืนค่าตัวเลขที่เลือก เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 5; k = 3 ผลลัพธ์จะได้ [4, 5, 2] ขั้นตอนการแก้ปัญหา เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้: สำ

  17. โปรแกรม C++ นับเหรียญขั้นต่ำเพื่อให้ผลรวมเท่ากับ k

    สมมติว่าเรามีตัวเลขสองตัว n และ k เรามีเหรียญมากมายมูลค่า 1 ถึง n เราต้องการเลือกเหรียญบางส่วนให้ผลรวมเท่ากับ k สามารถเลือกเหรียญมูลค่าเดียวกันหลายเหรียญเพื่อให้ผลรวมรวมเป็น k เราต้องนับจำนวนเหรียญขั้นต่ำที่ต้องใช้เพื่อให้ผลรวมเป็น k เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 6; k = 16 ผลลัพธ์จะได้ 3 เพราะ (2

  18. โปรแกรม C++ นับนาทีขั้นต่ำจนไม่มีนักเรียนโกรธใหม่

    สมมติว่าเรามีสตริง S ความยาว n มีตัวอักษรเพียง 2 ชนิดคือ A หรือ P มีนักเรียนนักเรียนนั่งเรียง n คน นักเรียนคนที่ i โกรธถ้า S[i] = A ถ้าเป็น P หมายถึง S[i] เป็นคนอดทน นักเรียนโกรธที่ดัชนี i จะตบนักเรียนอดทนที่ดัชนี i+1 ทุกนาที และสำหรับนักเรียนคนสุดท้ายแม้จะโกรธก็ไม่สามารถตบใครได้ หลังจากตบนักเรียนอด

  19. โปรแกรม C++ หาผู้ชนะเกมเอาลูกบอลออก

    สมมติว่าเรามีตัวเลข 4 ตัว n1, n2, k1 และ k2 พิจารณาว่ามีกล่อง 2 กล่อง กล่องแรกมี n1 ลูกบอล กล่องที่สองมี n2 ลูกบอล อมลและบิมลเล่นเกม ในหนึ่งตา พวกเขาสามารถหยิบลูกบอล 1 ถึง k1 ลูกจากกล่องแรกและทิ้งไป กล่องที่สองจะหยิบ 1 ถึง k2 ลูกในตาของเขา อมลเริ่มเกมและพวกเขาเล่นสลับกัน คนที่ไม่สามารถเล่นตาได้จะแพ้

  20. โปรแกรม C++ นับจำนวนตัวอักษรที่ต้องลบเพื่อได้สตริงดี

    สมมติว่าเรามีสตริง S S มีตัวอักษร 2 ชนิดคือ x และ a เราต้องนับว่าสตริงที่ยาวที่สุดที่เหลือหลังจากลบตัวอักษรบางส่วนใน S จะยาวเท่าไร จนกว่าจะกลายเป็น สตริงดี สตริงดีคือ สตริงที่มีตัวอักษร a มากกว่าครึ่งหนึ่งของความยาวอย่างเคร่งครัด เช่น ถ้าค่าที่ป้อนเข้าเป็น S = xaxxxxa ผลลัพธ์จะได้ 3 เพราะถ้าลบ x 4

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:294/301  20-คอมพิวเตอร์/Page Goto:1 288 289 290 291 292 293 294 295 296 297 298 299 300