Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. โปรแกรม C++ หาตัวเลขซ้ำในเวลา O(n) และพื้นที่ O(1) - ชุดที่ 1

    สมมติเรามีรายการตัวเลขจาก 0 ถึง n-1 ตัวเลขอาจซ้ำได้หลายครั้ง เราต้องหาตัวเลขที่ซ้ำโดยไม่ใช้พื้นที่เพิ่มเติม ถ้า n = 7 และรายการเป็น [5, 2, 3, 5, 1, 6, 2, 3, 4, 5] คำตอบจะเป็น 5, 2, 3 เพื่อแก้ปัญหานี้ เราต้องทำตามขั้นตอนเหล่านี้ − สำหรับแต่ละสมาชิก e ในรายการ ทำขั้นตอนต่อไปนี้ − sign :=

  2. โปรแกรม C++ พิมพ์โหนดที่ระดับคี่ของต้นไม้ไบนารี

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมพิมพ์โหนดที่อยู่ในระดับคี่ของต้นไม้ไบนารีที่กำหนด ในโปรแกรมนี้ ระดับของโหนดราก (root) ถูกพิจารณาว่าเป็น 1 และระดับสลับกันเป็นระดับคี่ถัดไป ตัวอย่าง สมมติเราได้รับต้นไม้ไบนารีดังนี้ โหนดที่ระดับคี่ของต้นไม้ไบนารีนี้จะเป็น 1, 4, 5, 6 ตัวอย่าง #include <bits/std

  3. โปรแกรม C++ หาตัวเลขซ้ำภายใต้เงื่อนไขที่กำหนด

    สมมติเรามีรายการ 6 ตัวเลขที่ต่างกัน มีเพียงตัวเลขเดียวที่ซ้ำ 5 ครั้ง ดังนั้นมีสมาชิกทั้งหมด 10 ตัวในอาร์เรย์ หาตัวเลขซ้ำโดยใช้การเปรียบเทียบเพียงสองครั้ง ถ้ารายการเป็น [1, 2, 3, 4, 4, 4, 4, 4, 5, 6] เอาต์พุทคือ 4 เนื่องจากมีตัวเลขเพียง 10 ตัว สำหรับตัวเลขซ้ำประเภทใดก็ตาม ช่วงของตัวเลขจะอยู่ที่ดัชนี

  4. โปรแกรม C++ หาสมาชิกของอาร์เรย์จากค่า XOR ของสมาชิกติดกัน

    พิจารณาว่าเราต้องหารายการ n สมาชิก แต่เรามีค่า XOR ของสมาชิกติดกันสองตัวของอาร์เรย์จริง สมาชิกแรกของอาร์เรย์จริงก็ได้รับมา ถ้าสมาชิกอาร์เรย์คือ a, b, c, d, e, f อาร์เรย์ที่ให้มาจะเป็น a^b, b^c, c^d, d^e และ e^f เนื่องจากตัวเลขแรกได้รับมา ชื่อ a สามารถช่วยหาตัวเลขทั้งหมดได้ ถ้าอยากหาสมาชิกตัวที่สองข

  5. โปรแกรม C++ หาสมาชิกที่อยู่ในอาร์เรย์แรกแต่ไม่อยู่ในอาร์เรย์ที่สอง

    สมมติเรามีอาร์เรย์สองอัน A และ B มีสมาชิกบางส่วน เราต้องหาสมาชิกที่อยู่ในเซต A แต่ไม่อยู่ในเซต B หากเราคิดว่าสถานการณ์นั้น และพิจารณา A และ B เป็นเซต นี่คือการดำเนินการหาความต่างของเซต (set difference) ความต่างของเซตระหว่าง A และ B จะคืนค่าสมาชิกเหล่านั้น ตัวอย่าง #include <iostream> #includ

  6. โปรแกรม C++ หาหมายเลขคอลัมน์ Excel จากชื่อคอลัมน์

    เรารู้ว่าหมายเลขคอลัมน์ Excel เป็นตัวอักษร เริ่มจาก A หลัง Z จะเป็น AA, AB ถึง ZZ แล้ว AAA, AAB ถึง ZZZ และต่อไป ดังนั้นคอลัมน์ 1 คือ A คอลัมน์ 27 คือ Z ที่นี่เราจะดูวิธีได้ตัวอักษรคอลัมน์ถ้ามีหมายเลขคอลัมน์ ถ้าหมายเลขคอลัมน์คือ 80 จะเป็น CB สมมติเรามีตัวเลข n และค่าคือ 28 เราต้องเอาเศษกับ 26 ถ้าเศ

  7. โปรแกรม C++ หาความถี่ของค่าที่น้อยที่สุดในอาร์เรย์

    ที่นี่เราจะดูวิธีหาความถี่ของสมาชิกที่น้อยที่สุดในอาร์เรย์ สมมติสมาชิกอาร์เรย์คือ [5, 3, 6, 9, 3, 7, 5, 8, 3, 12, 3, 10] สมาชิกที่น้อยที่สุดคือ 3 และความถี่ของสมาชิกนี้คือ 4 ดังนั้นเอาต์พุทคือ 4 เพื่อแก้ปัญหานี้ เราจะหาสมาชิกที่น้อยที่สุดของรายการ แล้วนับจำนวนครั้งที่เกิดขึ้นของตัวเลขแรก และนั่นจะเ

  8. โปรแกรม C++ ตรวจสอบว่าอาร์เรย์แบ่งเป็นสองซับอาร์เรย์ผลรวมเท่ากันได้หรือไม่

    สมมติเรามีอาร์เรย์ A เราต้องตรวจสอบว่าเราสามารถแบ่งอาร์เรย์เป็นสองส่วนที่ผลรวมเท่ากันได้หรือไม่ สมมติสมาชิกคือ [6, 1, 3, 2, 5] แล้ว [6, 1] และ [2, 5] สามารถเป็นซับอาร์เรย์ได้ ปัญหานี้แก้ได้ง่ายโดยทำตามกฎเหล่านี้ เราต้องหาผลรวมของสมาชิกทั้งหมดของอาร์เรย์ก่อน แล้วสำหรับแต่ละสมาชิก เราสามารถคำนวณผลรวม

  9. โปรแกรม C++ ตรวจสอบว่า n เขียนเป็นผลคูณของ k ตัวเลขได้หรือไม่

    สมมติเรามีตัวเลข N อีกตัวเลขหนึ่งคือ k เราต้องตรวจสอบว่าตัวเลขสามารถแทนได้ด้วย k ตัวเลขหรือไม่ สมมติตัวเลข 54 และ k = 3 จะพิมพ์ตัวเลข مثل [2, 3, 9] ถ้าแทนไม่ได้ จะพิมพ์ว่าไม่ได้ เพื่อแก้ปัญหานี้ เราจะหาตัวประกอบเฉพาะทั้งหมดของ N และเก็บในเวกเตอร์ แล้วเพื่อหา k ตัวเลขที่มากกว่า 1 เราตรวจสอบขนาดของเว

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

    พิจารณาว่าเรามีอาร์เรย์ A ที่มีสมาชิกบางส่วน เรามีค่า X และ k อีกสองค่า งานของเราคือหา k จำนวนสมาชิกที่ใกล้เคียง X มากที่สุดจากอาร์เรย์ A ถ้าสมาชิก X อยู่ในอาร์เรย์ จะไม่แสดงในเอาต์พุท ถ้า A = [12, 16, 22, 30, 35, 39, 42, 45, 48, 50, 53, 55, 56] และ X = 35, k = 4 เอาต์พุทจะเป็น 30, 39, 42, 45 เพื่อ

  11. โปรแกรม C++ หาตัวเลข k ตัวที่ใกล้ที่สุดในอาร์เรย์ที่ไม่เรียงลำดับ

    พิจารณาว่าเรามีอาร์เรย์ A ที่มีสมาชิกบางส่วน อาร์เรย์ไม่ได้เรียงลำดับ เรามีค่า X และ k อีกสองค่า งานของเราคือหา k จำนวนสมาชิกที่ใกล้เคียง X มากที่สุดจากอาร์เรย์ A ถ้าสมาชิก X อยู่ในอาร์เรย์ จะไม่แสดงในเอาต์พุท ถ้า A = [48, 50, 55, 30, 39, 35, 42, 45, 12, 16, 53, 22, 56] และ X = 35, k = 4 เอาต์พุทจะเ

  12. โปรแกรม C++ หาสมาชิกที่ใหญ่ที่สุดในอาร์เรย์โดยไม่ใช้ตัวดำเนินการเงื่อนไข

    สมมติเรามีอาร์เรย์ A ที่มีสมาชิกบางส่วน เราต้องหาสมาชิกที่ใหญ่ที่สุดในอาร์เรย์ A แต่มีข้อจำกัดคือ ไม่สามารถใช้ตัวดำเนินการเงื่อนไข (conditional operator) ได้ ถ้า A = [12, 63, 32, 24, 78, 56, 20] สมาชิกสูงสุดจะเป็น 78 เพื่อแก้ปัญหานี้ เราจะใช้การดำเนินการบิต AND (bitwise AND) ตั้งแต่แรกเราจะแทรกสมาช

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

    พิจารณาว่าเรามีพจนานุกรม และสตริง s หาสตริงที่ยาวที่สุดในพจนานุกรม ที่สามารถสร้างได้โดยการลบตัวอักษรบางส่วนของสตริง s สมมติ s คือ apbreoigroakml พจนานุกรมมี {prog, ram, program} ผลลัพธ์จะเป็น program เพื่อแก้ปัญหานี้ เราจะวนลูปทุกคำในพจนานุกรม และสำหรับแต่ละคำ เราจะตรวจสอบว่าคำนั้นเป็น subsequence

  14. โปรแกรม C++ หาสมาชิกสุดท้ายหลังลบทุกตัวที่สองในอาร์เรย์ n จำนวนเต็ม

    พิจารณาว่าเรามีอาร์เรย์วงกลมที่มีจำนวนเต็มจาก 1 ถึง n หาสมาชิกสุดท้ายที่จะเหลือในรายการหลังจากลบทุกตัวที่สองเริ่มจากตัวแรก ถ้าอินพุตคือ 5 อาร์เรย์จะเป็น [1, 2, 3, 4, 5] เริ่มจาก 1 หลังจากลบตัวที่สองแต่ละตัวจะเป็นดังนี้ − 1 0 3 4 5 1 0 3 0 5 0 0 3 0 5 0 0 3 0 0 ดังนั้นสมาชิกที่เหลือในรายกา

  15. โปรแกรม C++ หาดัชนีสุดท้ายของตัวอักษรในสตริง

    สมมติเรามีสตริง str และมีตัวอักษร ch อีกตัว งานของเราคือหาดัชนีสุดท้ายของ ch ในสตริง สมมติสตริงคือ Hello และตัวอักษร ch = l ดัชนีสุดท้ายจะเป็น 3 เพื่อแก้ปัญหานี้ เราจะวนลูปจากขวาไปซ้าย ถ้าตัวอักษรไม่เหมือน l ให้ลดดัชนี ถ้าตรงกัน ให้หยุดและคืนผลลัพธ์ ตัวอย่าง = 0; i--) if (str[i] == ch)

  16. โปรแกรม C++ หาค่าสูงสุดของแต่ละคอลัมน์ในเมทริกซ์

    พิจารณาว่าเรามีเมทริกซ์ งานของเราคือหาสมาชิกสูงสุดของแต่ละคอลัมน์ของเมทริกซ์นั้นและพิมพ์ออกมา งานนี้ง่าย สำหรับแต่ละคอลัมน์ รีเซ็ตค่าสูงสุด และหาสมาชิกสูงสุด แล้วพิมพ์ มาดูโค้ดเพื่อความเข้าใจที่ดีกว่า ตัวอย่าง #include <iostream> #define MAX 10 using namespace std; void largestInEachCol(i

  17. โปรแกรม C++ หาค่าสูงสุดของแต่ละแถวในเมทริกซ์

    พิจารณาว่าเรามีเมทริกซ์ งานของเราคือหาสมาชิกสูงสุดของแต่ละแถวของเมทริกซ์นั้นและพิมพ์ออกมา งานนี้ง่าย สำหรับแต่ละแถว รีเซ็ตค่าสูงสุด และหาสมาชิกสูงสุด แล้วพิมพ์ มาดูโค้ดเพื่อความเข้าใจที่ดีกว่า ตัวอย่าง #include <iostream> #define MAX 10 using namespace std; void largestInEachRow(int mat[]

  18. โปรแกรม C++ หาจุดกึ่งกลางของ Singly Linked List แบบ Recursive

    พิจารณาว่าเรามีรายการตัวเลข งานของเราคือหาจุดกึ่งกลางของ linked list โดยใช้การเรียกซ้ำ (recursion) ถ้าสมาชิกในรายการคือ [12, 14, 18, 36, 96, 25, 62] จุดกึ่งกลางคือ 36 เพื่อแก้ปัญหานี้ เราจะนับจำนวนโหนดทั้งหมดในรายการแบบเรียกซ้ำ และหาครึ่งหนึ่ง จากนั้นย้อนกลับผ่านการเรียกซ้ำลด n ลง 1 ในแต่ละครั้ง คื

  19. โปรแกรม C++ หาบิตที่มีนัยสำคัญที่สุด (MSB) ที่เป็น 1 ของตัวเลข

    ที่นี่เราจะดูว่าถ้ามีตัวเลข ก็จะหาค่าของ Most Significant Bit ที่เป็น 1 ได้อย่างไร ค่านี้คือกำลังของ 2 เช่นถ้าตัวเลขคือ 10 ค่า MSB จะเป็น 8 เราต้องหาตำแหน่งของ MSB แล้วหาค่าของตัวเลขที่มีบิตตั้งอยู่ที่ตำแหน่ง k ตัวอย่าง #include <iostream> #include <cmath> using namespace std; int

  20. โปรแกรม C++ หาตัวเลข N หลักที่หารด้วย D ลงตัว

    สมมติเรามีตัวเลขสองตัว N และ D เราต้องหาตัวเลข N หลักที่หารด้วย D ลงตัว ถ้า N คือ 3 และ D คือ 5 ตัวเลขอาจเป็น 500 สามารถแก้ได้ง่าย ถ้า D เป็น 10 และ N เป็น 1 จะเป็นไปไม่ได้ เราสามารถนำ D มาวาง และสมมติ D มี m หลัก แล้วต่อศูนย์ N - m ตัวท้าย เพื่อทำให้เป็นตัวเลข N หลักและหารด้วย D ลงตัว ตัวอย่าง #in

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:92/301  20-คอมพิวเตอร์/Page Goto:1 86 87 88 89 90 91 92 93 94 95 96 97 98