Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. จำนวนศูนย์ท้ายสูงสุดในผลคูณของเซตย่อยขนาด k ใน C++

    โจทย์: หาจำนวนศูนย์ท้าย (trailing zeros) สูงสุดในผลคูณของเซตย่อย (subsets) ขนาด K จากอาร์เรย์ขนาด N ตัวอย่าง Input: Arr[] = {5, 20, 2}, K = 2 Output: 2 คำอธิบาย: เซตย่อยขนาด 2 มี 3 ชุด: - [5, 20] → 100 (2 ศูนย์ท้าย) - [20, 2] → 40 (1 ศูนย์ท้าย) - [5, 2] → 10 (1 ศูนย์ท้าย) ค่าสูงสุดคือ 2 Input: Ar

  2. จำนวนเฉพาะตัวประกอบที่ไม่ซ้ำกันสูงสุดในช่วง 1 ถึง N ใน C++

    ภาพรวมปัญหา หาจำนวนเฉพาะตัวประกอบที่ไม่ซ้ำกันสูงสุดที่ตัวเลขในช่วง [1, N] สามารถมีได้ ตัวอย่าง Input: N = 100 Output: 3 Explanation: 30 = 2 × 3 × 5 มีตัวประกอบเฉพาะ 3 ตัว Input: N = 300 Output: 4 แนวทางแก้ปัญหา ใช้ Sieve of Eratosthenes หาจำนวนเฉพาะทั้งหมด ≤ N คูณจำนวนเฉพาะตามลำดับ (2, 3, 5, 7,

  3. ผลรวมของสองตัวเลขแบบโมดูล로 M ใน C++

    ภาพรวมปัญหา ได้รับตัวเลข 3 ตัวคือ a, b, และ M หาผลรวมของ a และ b แล้วหาเศษเมื่อหารด้วย M ตัวอย่าง Input: a = 14, b = 54, m = 7 Output: 5 Explanation: 14 + 54 = 68, 68 % 7 = 5 ตัวอย่างโค้ด C++ #include <iostream> using namespace std; int moduloSum(int a, int b, int M) { return (a + b) %

  4. จำนวนกระบวนการ Zombie สูงสุดที่ระบบรับได้ใน C++

    ภาพรวมปัญหา หาจำนวนกระบวนการ Zombie (กระบวนการที่จบการทำงานแล้วแต่ยังคงอยู่ในตารางกระบวนการ) สูงสุดที่ระบบสามารถรองรับได้ก่อนที่โปรแกรมจะหยุดทำงาน แนวทาง ใช้ fork() สร้างกระบวนการลูก (child process) เงื่อนไข 0) ทำให้กระบวนการพ่อสร้างลูกต่อเนื่อง นับจำนวนครั้งที่สร้างสำเร็จจนกว่าระบบจะจำกัด ตัว

  5. ตัวเลขสูงสุดที่แสดงบน Seven Segment Display ได้จาก N เซกเมนต์ใน C++

    ภาพรวมปัญหา หาตัวเลขสูงสุดที่สามารถแสดงได้บน Seven Segment Display โดยใช้เซกเมนต์ทั้งหมด N ตัว ตัวอย่าง Input: N = 5 Output: 71 Explanation: 7 ใช้ 3 เซกเมนต์, 1 ใช้ 2 เซกเมนต์ รวม 5 Input: N = 6 Output: 111 Explanation: 1 ใช้ 2 เซกเมนต์ ตัวละ 3 ตัว รวม 6 แนวทางแก้ปัญหา กรณี N = 0 หรือ 1: ไม่สาม

  6. ตัวเลขสูงสุดที่มีผลคูณแฟกทอเรียลของหลักเท่ากันใน C++

    ภาพรวมปัญหา หาตัวเลขสูงสุด (ไม่มีศูนย์นำหน้าหรือศูนย์ท้าย และไม่มีเลข 1) ที่ผลคูณของแฟกทอเรียลของหลักต่างๆ เท่ากับผลคูณแฟกทอเรียลของหลักของตัวเลข N ที่กำหนด ตัวอย่าง Input: N = 4912 Output: 73332222 Explanation: 4! * 9! * 1! * 2! = 7! * 3! * 3! * 3! * 2! * 2! * 2! * 2! = 17,418,240 Input: N = 340

  7. ผลรวมของสามเหลี่ยมบนและสามเหลี่ยมล่างใน C++

    นิยาม สามเหลี่ยมล่าง (Lower Triangle) = j) สามเหลี่ยมบน (Upper Triangle) อิลิเมนต์ที่อยู่บนและสูงกว่าเส้นทแยงมุมหลัก (i <= j) ตัวอย่าง Input: {{5, 1, 6}, {8, 2, 0}, {3, 7, 4}} Output: upper triangle sum = 18 lower triangle sum = 29 Explanation: Upper: 5 + 1 + 6 + 2 + 0 + 4 = 18 Lower: 5 + 8 +

  8. ผลรวมของ XOR ของทุกคู่ในอาร์เรย์ใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์ arr[] ขนาด n จำนวนเต็ม หาผลรวมของ XOR ของทุกคู่ที่เป็นไปได้ในอาร์เรย์ ตัวอย่าง Input: arr[] = {5, 1, 4} Output: 10 Explanation: 5 ^ 1 = 4 1 ^ 4 = 5 5 ^ 4 = 1 ผลรวม = 4 + 5 + 1 = 10 วิธีแก้ปัญหา วิธีง่าย (Nested Loops) - O(n²) Initialise sum = 0 for i = 0 to n-1: fo

  9. ผลรวมของ XOR ของทุกซับเซ็ตที่เป็นไปได้ใน C++

    ภาพรวมปัญหา ได้รับอาร์เรย์ arr[] ขนาด n งานคือหาผลรวมของ XOR ของทุกซับเซ็ต (ทุกชุดย่อย) ที่เป็นไปได้ของอาร์เรย์ ตัวอย่าง Input: arr[] = {5, 1, 4} Output: 20 Explanation: XOR ของทุกซับเซ็ต: {5} = 5 {1} = 1 {4} = 4 {5, 1} = 4 {5, 4} = 1 {1, 4} = 5 {5, 1, 4} = 0 ผลรวม XOR = 5 + 1 + 4 + 4 + 1 + 5 = 20

  10. ผลรวมของ XOR ของทุกซับอาร์เรย์ใน C++

    ภาพรวมปัญหา ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ที่มี n ตัวเลข งานของเราคือสร้างโปรแกรมเพื่อหาผลรวมของ XOR ของทุกซับอาร์เรย์ของอาร์เรย์ ตัวอย่างเพื่อความเข้าใจ Input: arr[] = {5, 1, 4} Output: 19 Explanation: XOR ของทุกซับอาร์เรย์: XOR {5} = 5 XOR {1} = 1 XOR {4} = 4 XOR {5,1} = 5^1 = 4 XOR {1, 4}

  11. Sum of Series K^n + K^(n-1)(K-1) + ... + (K-1)^n ใน C++

    โจทย์: หาผลรวมอนุกรม: K^n + K^(n-1)(K-1)^1 + K^(n-2)(K-1)^2 + ... + (K-1)^n ตัวอย่าง: n=3, K=4 → 4³ + 4²·3 + 4·3² + 3³ = 64+48+36+27 = 175 วิธี 1: Loop ทีละพจน์ (O(n)) int calcSeriesSum(int k, int n) { int sum = 0; for (int i = 0; i <= n; i++) sum += pow(k, n-i) * pow(k-1, i);

  12. Sum of Two Large Numbers (String Representation) ใน C++

    โจทย์: บวกเลขใหญ่ 2 ตัวที่เก็บเป็น string (เกิน range ของ built-in types) ตัวอย่าง: 341299123919 + 52413424 = 341351537343 อัลกอริธึม: Grade-school Addition Reverse ทั้งสอง string (หรือ traverse จากท้าย) 2. บวก digit by digit + carry 3. เก็บผลลัพธ์ digit ต่อท้าย result string 4. Reverse

  13. Sum of Two Numbers Where One Number is Represented as Array of Digits in C++

    โจทย์: บวก integer n กับ number ที่เก็บใน array of digits (most significant digit first) เช่น n=213, m=[1,5,8] → 213+158=371 อัลกอริธึม: Digit-by-digit Addition from Right เริ่มจาก digit สุดท้ายของ array (index size-1) 2. บวกกับ LSD ของ n (n%10) + carry 3. เก็บผลลัพธ์ % 10 กลับเข้า array, c

  14. หา 2 จำนวนเฉพาะที่ต่างกัน ที่ผลคูณเท่ากับ N ใน C++

    โจทย์: กำหนด N หา 2 จำนวนเฉพาะ p, q (p ≠ q) ที่ p × q = N อัลกอริธึม: Sieve + Check Pairs Sieve of Eratosthenes หา primes ≤ N 2. วน i = 2..N: ถ้า i prime และ N%i==0 และ N/i prime และ N/i ≠ i → พบคู่ ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using namespace std; voi

  15. หา Uncommon Characters ของสอง Strings ใน C++

    โจทย์: กำหนด 2 strings หาตัวอักษรที่ปรากฏใน string ไหน string หนึ่งเท่านั้น (ไม่ปรากฏในทั้งคู่) เรียงลำดับ a-z ตัวอย่าง: tutorials, point → a l n p r s u อัลกอริธึม: Frequency Array Array freq[26] = 0 2. Scan str1: freq[c-a] = 1 3. Scan str2: ถ้า freq = 1 หรือ -1 → set -1 (commo

  16. หา Trace ของ Matrix ที่ได้จาก Row-major + Column-major ใน C++

    โจทย์: สร้าง matrix A (row-major 1..N) และ B (column-major 1..N) หา trace ของ C = A + B (trace = ผลรวม diagonal elements) ตัวอย่าง: 6×9 matrix → trace = 384 สูตรทางคณิตศาสตร์ A[i][j] = i×C + j + 1 (0-indexed, C = columns) B[i][j] = j×R + i + 1 (R = rows) C[i][i] = A[i][i] + B[i][i] = i×C + i + 1

  17. หา Triplet ของโหนดใน Tree ที่ครอบคลุม Nodes มากที่สุดใน Path ระหว่างกันใน C++

    โจทย์: Tree N nodes หา triplet (a,b,c) ที่ nodes ใน paths ระหว่างคู่ๆ (a-b, b-c, a-c) รวมกันมากที่สุด แนวคิด: Diameter + Farthest from Diameter หา diameter endpoints (u, v) ด้วย 2 BFS/DFS 2. Mark ทุกโหนดบน diameter path 3. หาโหนด w ที่ห่างจาก diameter มากที่สุด (max distance to any node on

  18. หา 2 จำนวนที่ Sum และ Product เท่ากับ N ใน C++

    โจทย์: กำหนด N หา a, b ที่ a+b = N และ a×b = N คณิตศาสตร์ a + b = N, a × b = N → a, b เป็นรากของสมการ x² - Nx + N = 0 Discriminant: D = N² - 4N ถ้า D < 0 → ไม่มีคำตอบจริง ถ้า D ≥ 0 → a,b = (N ± √D) / 2 ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using namespace std; void calculateTwoVa

  19. หาเวลาที่สัญญาณครอบคลุม String ทั้งหมด (x และ o) ใน C++

    โจทย์: String ประกอบ x (source) และ o (target) สัญญาณจาก x แพร่ทั้ง 2 ทิศ ทุก 1 unit time แปลง o 1 ตัว หาเวลาที่ string ทั้งหมดกลายเป็น x ตัวอย่าง: xooxoooxxoooxoooxooxooox → 2 อัลกอริธึม: หา longest stretch ของ o ระหว่าง x Stretch อยู่ระหว่าง 2 x → เวลา = ceil(len / 2) (แพร่จากทั้งสองข้าง)

  20. นับ Distinct Years จาก String รูปแบบ DD-MM-YYYY ใน C++

    โจทย์: กำหนด string ที่มี dates ในรูปแบบ DD-MM-YYYY หาจำนวนปี (year) ที่ distinct ตัวอย่าง: I was born on 22-12-1955. My sister was born on 34-06-2003 and my mother on 23-03-1940. → 3 years (1955, 2003, 1940) อัลกอริธึม: Scan + Extract 4-digit numbers หลัง hyphen ที่ 2 สแกน string ทีละตัวอักษร

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:210/301  20-คอมพิวเตอร์/Page Goto:1 204 205 206 207 208 209 210 211 212 213 214 215 216