Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ตรวจสอบ Circle อยู่ภายใน Circle อีกวงใน C++

    สมมติมี 2 Circles (จุดศูนย์กลางและรัศมี) ต้องตรวจสอบ Circle หนึ่งอยู่ในอีกวงหนึ่งหรือไม่ มี 3 กรณี: Circle เล็กอยู่ภายใน Circle ใหญ่สนิท ไม่สัมผัส: Distance + r_small < r_big Circle เล็กอยู่ภายในแต่สัมผัส Circumference: Distance + r_small = r_big บางส่วนของ Circle เล็กอยู่ภายใน หา Distance ระหว

  2. ตรวจสอบ Pairwise Sorted Array ใน C++

    มี Array A ขนาด n ต้องตรวจสอบว่า Pairwise Sorted หรือไม่ ตัวอย่าง {8, 10, 18, 20, 5, 15} เป็น Pairwise Sorted เพราะ (8,10), (18,20), (5,15) เรียงลำดับ ถ้า Array มี Odd Elements ตัวสุดท้ายจะถูก Ignore วิธีง่าย: Loop i จาก 0 ถึง n-1 Step 2 เช็ค arr[i] <= arr[i+1] มิฉะนั้น false ตัวอย่างโค้ด C++ #in

  3. ตรวจสอบ Sparse Matrix ใน C++

    ในบทความนี้จะตรวจสอบว่า Matrix เป็น Sparse หรือไม่ Sparse Matrix คือ Matrix ที่ Element ส่วนใหญ่เป็น 0 นิยาม: ถ้า 2/3 ของ Elements เป็น 0 ถือว่า Sparse Matrix ตัวอย่าง Sparse Matrix: วิธีตรวจสอบ: นับจำนวน 0 ใน Matrix ถ้ามากกว่า 2/3 ของ Total Elements คือ Sparse ตัวอย่างโค้ด C++ #include <iostrea

  4. ตรวจสอบ Sparse Number ใน C++

    ในส่วนนี้จะตรวจสอบว่า Number เป็น Sparse หรือไม่ Sparse Number คือ Binary Representation ไม่มี 1 ติดกัน 2 ตัวขึ้นไป ตัวอย่าง 72 = 01001000 ไม่มี 1 ติดกัน วิธีตรวจสอบ: n & (n >> 1) ถ้าผลลัพธ์เป็น 0 คือ Sparse Number มิฉะนั้นไม่ใช่ ตัวอย่างโค้ด C++ #include <iostream> using namespace s

  5. ตรวจสอบ String เป็น Rotation ของ Palindrome ใน C++

    ในบทความนี้จะตรวจสอบว่า String เป็น Palindrome หลัง Rotation หรือไม่ Palindrome คือ String ที่อ่านจากหน้าหลังได้เหมือนกัน String Rotation เป็น Palindrome เช่น AAAAD ไม่ใช่ Palindrome โดยตรง แต่ Rotation AADAA เป็น Palindrome วิธีตรวจสอบ: เช็ค Palindrome ก่อน แล้ว Rotate ทีละ Character เช็คใหม่ ทำ n

  6. ตรวจสอบ Number แสดงเป็นผลรวม 2 Abundant Numbers ใน C++

    สมมติมี Number ต้องการแสดงเป็นผลรวม 2 Abundant Numbers ถ้าได้พิมพ์ตัวเลข มิฉะนั้น -1 Abundant Number คือ Number ที่ผลรวม Proper Divisors (sum(n)) มากกว่าตัวเลขเอง วิธีแก้: เก็บ Abundant Numbers ทั้งหมดใน Set สำหรับ Number n วน Loop i=1 ถึง n ตรวจสอบ i และ (n-i) เป็น Abundant หรือไม่ ตัวอย่างโค้ด C++

  7. ตรวจสอบ Alternating Bit Pattern แบบ Set 1 ใน C++

    ตรวจสอบว่า Integer n มี Alternating Pattern ใน Binary (101010...) หรือไม่ วิธี: ตรวจสอบแต่ละ Bit ถ้า 2 Consecutive Bits เหมือนกัน คืนค่า false มิฉะนั้น true ตัวอย่างโค้ด C++ #include <iostream> using namespace std; bool hasAlternatePattern(unsigned int n) { int previous = n % 2; n = n

  8. ตรวจสอบ Alternating Bit Pattern แบบ O(1) ใน C++

    พิจารณา Integer n ต้องการตรวจสอบว่า Binary Representation มี Alternating Pattern (101010...) หรือไม่ วิธี O(1): คำนวณ num = n XOR (n >> 1) ถ้า Bits ทั้งหมดของ num เป็น 1 แสดงว่ามี Alternating Pattern ตัวอย่างโค้ด C++ #include <iostream> #include <algorithm> using namespace std; bo

  9. ตรวจสอบ Krishnamurthy Number ใน C++

    ในบทความนี้จะตรวจสอบว่า Number เป็น Krishnamurthy Number หรือไม่ Krishnamurthy Number คือ Number ที่ผลรวม Factorial ของแต่ละ Digit เท่ากับ Number เดิม ตัวอย่าง 145: 1! + 4! + 5! = 1 + 24 + 120 = 145 เป็น Krishnamurthy Number ตรรกะ: หา Factorial แต่ละ Digit รวมกัน ถ้าเท่ากับ Number เดิม คือ Krishnamu

  10. ตรวจสอบ Number หาร 23 ลงตัวหรือไม่ใน C++

    ตรวจสอบว่า Number หาร 23 ลงตัวหรือไม่ ตัวอย่าง 1191216 หาร 23 ลงตัว กฎ: ดึง Last Digit ทุกครั้ง บวก 7 × (Last Digit) เข้า Truncated Number ทำซ้ำจนกว่าเพียงพอ 17043, so 1704 + 7*3 = 1725 1725, so 172 + 7 * 5 = 207 207, this is 9 * 23, so 17043 is divisible by 23. ตัวอย่างโค้ด C++ #include <iostr

  11. ตรวจสอบ Number หาร 41 ลงตัวหรือไม่ใน C++

    ในบทความนี้จะตรวจสอบว่า Number หาร 41 ลงตัวหรือไม่ ตัวอย่าง 104413920565933 หาร 41 ลงตัว กฎการตรวจสอบ: ดึง Last Digit ของ Number/Truncated Number ทุกครั้ง ลบ 4 × (Last Digit) ออกจาก Truncated Number ทำซ้ำจนกว่าเพียงพอ 30873, so 3087 - 4*3 = 3075 3075, so 307 - 4 * 5 = 287 287, so 28 – 4 * 7 = 0 So

  12. ตรวจสอบ Number ประกอบด้วย 1, 14, 144 เท่านั้นใน C++

    ในบทความนี้จะตรวจสอบว่า String หรือ Number เป็น Concatenation ของ 1, 14 หรือ 144 เท่านั้น ตัวอย่าง 111411441 ถูกต้อง แต่ 144414 ไม่ถูกต้อง วิธีแก้: ดึง Single-digit, Double-digit, Triple-digit จากท้าย ตรวจสอบ Match กับ 1, 14, 144 ถ้า Match ให้หาร Number ด้วยตัวนั้น ทำซ้ำจน Number หมด ตัวอย่างโค้ด C+

  13. Sort Elements ระหว่าง Multiples of K ใน Array ใน C++

    สมมติมี Array A และ Integer K ต้อง Sort Elements ที่อยู่ระหว่าง Multiples of K 2 ตัว ตัวอย่าง A=[2,13,3,1,21,7,8,13,12], K=2 Output=[2,1,3,7,13,21,8,13,12] Multiples of 2 คือ 2, 8, 12 Elements ระหว่าง 2 และ 8 คือ 13,3,1,21,7 เรียงได้ 1,3,7,13,21 ระหว่าง 8 และ 12 มีแค่ 13 เรียงแล้ว Traverse Array ติด

  14. Sort Array of Strings ตาม Alphabetical Order จาก String อีกตัวใน C++

    สมมติมี Array of Strings และ Reference String ต้อง Sort String Array ตามลำดับ Characters ใน Reference String String Array และ Reference String เป็น Lowercase ตัวอย่าง String Array: [hello, programming, science, computer, india] Reference: pigvxbskyhqzelutoacfjrndmw หลัง Sort: [programming, india, sc

  15. Sorting Array ตามอีก Array ด้วย Pair ใน STL C++

    สมมติมี 2 Arrays ต้องการ Sort Array หนึ่งตามอีก Array ด้วย C++ STL Pair Class ตัวอย่าง A1=[2,1,5,4,9,3,6,7,10,8] A2=[A,B,C,D,E,F,G,H,I,J] Output: A1=[1,2,3,4,5,6,7,8,9,10] A2=[B,A,F,D,C,G,H,J,E,I] ใช้ Pair ของ STL: Pair ประกอบด้วย Element จาก A1 และ A2 แล้ว Sort ธรรมดา สำคัญคือ First Element ใน Pair

  16. Maximum Edge Disjoint Spanning Trees จาก Complete Graph ใน C++

    สมมติมี Complete Graph ต้องการนับจำนวน Edge Disjoint Spanning Trees Edge Disjoint Spanning Trees คือ Spanning Trees ที่ไม่มี Edge ไหนซ้ำกันระหว่าง Trees ใน Set สมมติ N=4 Output=2 Complete Graph 4 Vertices: 2 Edge Disjoint Spanning Trees: สูตร: จำนวนสูงสุด = ⌊n/2⌋ ตัวอย่างโค้ด C++ #include <iost

  17. Maximum Sum SubArray ด้วย Divide and Conquer ใน C++

    สมมติมี List ข้อมูล Positive และ Negative ต้องการหา Sum ของ Contiguous Subarray ที่มี Sum มากที่สุด ตัวอย่าง {-2, -5, 6, -2, -3, 1, 5, -6} Max Subarray Sum = 7 จาก {6, -2, -3, 1, 5} แก้ด้วย Divide and Conquer: แบ่ง Array เป็น 2 ส่วน หา Max ของ 3 ค่า: Max Subarray Sum ของ Left Subarray Max Subarray

  18. Median และ Mode ด้วย Counting Sort ใน C++

    พิจารณา Array ขนาด n ต้องการหา Median และ Mode ด้วย Counting Sort เหมาะเมื่อ Elements อยู่ใน Range จำกัด ตัวอย่าง {1, 1, 1, 2, 7, 1} Mode = 1, Median = 1.5 Median = ตัวกลางของ Sorted List Mode = Element ที่เกิดบ่อยที่สุด ขั้นตอน: Assume Array Size = n ใช้ Count Array ก่อน Sum Previous Counts Inde

  19. ลด ASCII Values Sum หลัง Remove Character ทั้งหมดใน C++

    สมมติมี String ต้อง Minimize ผลรวม ASCII Values หลัง Remove ทุก Occurrence ของ Character หนึ่งตัว ตัวอย่าง hello ASCII Sum = 104+101+108+108+111 = 532 ตรวจสอบ Occurrences: h: 1 ครั้ง Cost = 1×104 = 104 e: 1 ครั้ง Cost = 1×101 = 101 l: 2 ครั้ง Cost = 2×108 = 216 o: 1 ครั้ง Cost = 1×111 = 111 l มี O

  20. Minimum Cost ทำให้ Numeric Strings เหมือนกันใน C++

    สมมติมี Numeric Strings A และ B ต้องการ Minimum Cost ทำให้เหมือนกัน Operation เดียวคือลบ Digits Cost ลบ Digit = ค่าของ Digit ตัวอย่าง A=6789, B=7859 ลบ 6 จาก A และ 5 จาก B Cost = 5+6=11 Variation ของ LCS หา LCS Cost แล้วใช้สูตร: MinimumCost = CostA + CostB - 2*lcs_cost ตัวอย่างโค้ด C++ #include <

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:81/301  20-คอมพิวเตอร์/Page Goto:1 75 76 77 78 79 80 81 82 83 84 85 86 87