Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ตรวจสอบว่าเลขสามารถเขียนในรูป a^b ได้หรือไม่ ใน C++

    ตรวจสอบว่าเลขสามารถเขียนในรูป aᵇ ได้หรือไม่ (ซ้ำอีกครั้ง) เนื้อหาเหมือน ID 1983 และ 1984 ทุกประการ ตัวอย่างโค้ด #include<iostream> #include<cmath> using namespace std; bool isRepresentPower(int num) { if (num == 1) return true; for (int i = 2; i * i <= num; i++) { doubl

  2. ตรวจสอบว่าเลขสามารถเขียนในรูป aᵇ ได้หรือไม่ ใน C++

    ตรวจสอบว่าเลขสามารถเขียนในรูป aᵇ ได้หรือไม่ (ซ้ำกับบทความก่อนหน้า) ตัวอย่าง: 125 = 5³, 91 = ไม่ได้ อัลกอริทึมเหมือนกัน: วน i = 2 ถึง √num ใช้ log ตรวจสอบ ตัวอย่างโค้ด #include<iostream> #include<cmath> using namespace std; bool isRepresentPower(int num) { if (num == 1) return true;

  3. ตรวจสอบว่าเลขสามารถเขียนในรูป xʸ ได้หรือไม่ ใน C++

    ตรวจสอบว่าเลขสามารถเขียนในรูป xʸ (x ยกกำลัง y) ได้หรือไม่ ตัวอย่าง: 125 = 5³, 91 = ไม่ได้ อัลกอริทึม: วน i = 2 ถึง √num คำนวณ val = log(num)/log(i) ถ้า val ใกล้ค่าจำนวนเต็ม → เป็นได้ ตัวอย่างโค้ด #include<iostream> #include<cmath> using namespace std; bool isRepresentPower(int num) {

  4. ตรวจสอบว่าเลขสามารถเขียนเป็นผลรวมของเลขสามเหลี่ยมสองจำนวนได้หรือไม่ ใน C++

    เลขสามเหลี่ยม (Triangular numbers): 1, 3, 6, 10, 15, ... สูตร Tᵢ = i(i+1)/2 ตรวจสอบว่า N = Tₐ + T_b ได้หรือไม่ วิธี: หาเลขสามเหลี่ยมทั้งหมด < N ใส่ใน Set แล้ววนหา x ใน Set ว่า N-x อยู่ใน Set หรือไม่ ตัวอย่างโค้ด = n) break; s.insert(x); i++; } for (auto x : s) if (s.

  5. ตรวจสอบว่าเลขสามารถเขียนเป็นผลรวมของกำลังสองที่ไม่เป็นศูนย์ได้หรือไม่ ใน C++

    0 ตัวอย่าง: 10 = 2³ + 2¹ สังเกต: ถ้า N เป็นเลขคู่ → สามารถเขียนได้ (เพราะ 2ˣ + 2ʸ = 2 × (2ˣ⁻¹ + 2ʸ⁻¹) เป็นเลขคู่) ถ้า N เป็นเลขคี่ → ไม่สามารถเขียนได้ (LSB ของฐานสองคือ 1) ตัวอย่างโค้ด #include <iostream> using namespace std; bool isSumofTwosPower(int n) { return ((n & 1) == 0); } int

  6. ตรวจสอบว่าเลขสามารถเขียนเป็นผลรวมของจำนวนเต็มติดกัน 3 จำนวนได้หรือไม่ ใน C++

    ตรวจสอบว่าเลข N แสดงเป็นผลรวมของจำนวนเต็มติดกัน 3 จำนวนได้หรือไม่ ตัวอย่าง: 27 = 8 + 9 + 10 วิธีง่าย: N หาร 3 ลงตัว → เป็นได้ เพราะ (y-1) + y + (y+1) = 3y ตัวอย่างโค้ด #include <iostream> using namespace std; bool hasThreeNums(int n) { return (n % 3 == 0); } int main() { int num = 2

  7. ตรวจสอบว่าเลขมีจำนวนบิต 1 และ 0 เท่ากันหรือไม่ ใน C++

    ตรวจสอบว่าจำนวนบิต 1 (set bits) และบิต 0 (unset bits) ในการแทนค่าฐานสองเท่ากันหรือไม่ ตัวอย่าง: 12 = 1100₂ มีบิต 1 สองตัว บิต 0 สองตัว → เท่ากัน วิธี: วนตรวจสอบแต่ละบิต นับ set_count และ unset_count เปรียบเทียบในท้ายที่สุด ตัวอย่างโค้ด 1; } return (set_count == unset_count); } int main()

  8. ตรวจสอบว่าเลขมีบิต 1 ติดกันหรือไม่ ใน C++

    ตรวจสอบว่าการแทนค่าฐานสองของเลขมีบิต 1 ติดกัน (adjacent set bits) หรือไม่ ตัวอย่าง: 12 = 1100₂ มีบิต 1 ติดกัน วิธี: Shift ขวา 1 บิต แล้ว AND กับตัวเดิม ถ้าผลลัพธ์ ≠ 0 → มีบิต 1 ติดกัน ตัวอย่างโค้ด 1)) != 0); } int main() { int num = 67; // 1000011 if (hasConsecutiveOnes(num)) cout <<

  9. ตรวจสอบว่าเลขเป็น Mystery Number หรือไม่ ใน C++

    Mystery Number = จำนวนที่เป็นผลรวมของสองจำนวนที่เป็นตัวเลขกลับกัน (reverse) ตัวอย่าง: 121 = 29 + 92 (29 และ 92 เป็นตัวเลขกลับกัน) วิธี: วน i = 1 ถึง n/2 หาจำนวนกลับของ i ถ้า i + reverse(i) = n → เป็น Mystery Number ตัวอย่างโค้ด rev; return rev; } bool isMysteryNumber(int n) { for (int i =

  10. ตรวจสอบว่าเลขเป็นกำลังของอีกเลขหนึ่งหรือไม่ ใน C++

    ตรวจสอบว่า y เป็นกำลังของ x หรือไม่ (y = xᵏ) ตัวอย่าง: 125 เป็นกำลังของ 5 เพราะ 125 = 5³ อัลกอริทึม isRepresentPower(x, y): if x == 1: return (y == 1) pow = 1 while pow < y: pow *= x return (pow == y) ตัวอย่างโค้ด #include<iostream> #include<cmath> using namespace std;

  11. ตรวจสอบว่าเลขเป็น Pythagorean Prime หรือไม่ ใน C++

    Pythagorean Prime = จำนวนเฉพาะที่เขียนในรูป 4n + 1 ได้ วิธี: ตรวจสอบจำนวนเฉพาะ แล้วหาร 4 ถ้าเศษ = 1 → เป็น Pythagorean Prime ตัวอย่าง: {5, 13, 17, 29, 37, 41, 53, ...} ตัวอย่างโค้ด #include <iostream> using namespace std; bool isPrime(int n) { for(int i = 2; i <= n/2; i++) if(n %

  12. ตรวจสอบว่าเลขเป็น Full Prime หรือไม่ ใน C++

    Full Prime = จำนวนเฉพาะ และทุกหลักเลขก็เป็นจำนวนเฉพาะด้วย ตัวอย่าง: 37 = Full Prime, 97 ไม่ใช่ (9 ไม่ใช่จำนวนเฉพาะ) วิธี: ตรวจสอบทุกหลักเลขต้องเป็น 2,3,5,7 เท่านั้น แล้วค่อยตรวจสอบตัวเลขทั้งหมดว่าเป็นเฉพาะหรือไม่ ตัวอย่างโค้ด #include <iostream> using namespace std; bool isPrime(int n) {

  13. ตรวจสอบว่าเลขเป็น Quartan Prime หรือไม่ ใน C++

    Quartan Prime 0) วิธีตรวจสอบ: ตรวจสอบว่าเป็นจำนวนเฉพาะ ถ้าใช่ หาร 16 ถ้าเศษ = 1 → เป็น Quartan Prime ตัวอย่าง Quartan Prime: {2, 17, 97, ...} ตัวอย่างโค้ด #include <iostream> using namespace std; bool isPrime(int n) { for(int i = 2; i <= n/2; i++) if(n % i == 0) return false;

  14. ตรวจสอบว่าเลข N เริ่มต้นด้วย 1 ในฐาน b หรือไม่ ใน C++

    ตรวจสอบว่าเลข N แทนในฐาน b เริ่มต้นด้วยเลข 1 หรือไม่ ตัวอย่าง: 6 ในฐาน 2 = 110 (ขึ้นต้น 1), ฐาน 4 = 12₄ (ขึ้นต้น 1) หลักการ: N ในฐาน b มี m+1 บิต ค่าสูงสุดคือ 2×bᵐ - 1 ดังนั้น N อยู่ในช่วง bᵐ ≤ N ≤ 2×bᵐ - 1 m ไม่เกิน ⌊log₂ N⌋ วนตรวจสอบ m=1 ถึง ⌊log₂ N⌋ ว่า N อยู่ในช่วงนั้นหรือไม่ ตัวอย่างโค้ด #incl

  15. โปรแกรม C++ หาสองจำนวนที่ผลรวมและผลคูณเท่ากับ N เดียวกัน

    หา a, b ที่ทำให้ a+b = N และ a×b = N พร้อมกัน กำจัด a ได้สมการกำลังสองใน b: b² - bN + N = 0 ใช้สูตรกำลังสองหาค่าราก: a = (N - √(N² - 4N)) / 2 b = (N + √(N² - 4N)) / 2 ตัวอย่างโค้ด N; a = (N + sqrt(N*N - 4*N))/2; b = (N - sqrt(N*N - 4*N))/2; cout << The two integers are : <<

  16. โปรแกรม C++ หาตัวอักษรที่ไม่ซ้ำในสองสตริง

    หาตัวอักษรที่ไม่ซ้ำ (uncommon characters) เมื่อเปรียบเทียบสองสตริง สตริงคืออาร์เรย์ของตัวอักษร วนลูปสตริงแรก ตรวจสอบว่ามีในสตริงที่สองหรือไม่ → ได้ A - B วนลูปสตริงที่สอง ตรวจสอบในสตริงแรก → ได้ B - A รวมทั้งสอง = (A - B) ∪ (B - A) ตัวอย่างโค้ด #include <iostream> using namespace std; int ma

  17. โปรแกรม C++ หา Union และ Intersection ของอาร์เรย์ที่ไม่ได้เรียง

    หา Union (A ∪ B) และ Intersection (A ∩ B) ของอาร์เรย์สองอาร์เรย์ที่ไม่ได้เรียง Union: รวมสมาชิกทั้งสองอาร์เรย์ ไม่ซ้ำ Intersection: สมาชิกที่มีในทั้งสองอาร์เรย์ วิธี Union: คัดลอกอาร์เรย์แรก แล้ววนอาร์เรย์ที่สอง ถ้ายังไม่มีใน union ให้เพิ่ม วิธี Intersection: วนอาร์เรย์แรก ตรวจสอบว่ามีในอาร์เรย์ท

  18. โปรแกรม C++ หาคู่ที่ไม่ซ้ำกันที่สมาชิกน้อยกว่าหรือเท่ากับ N

    หาคู่ตัวเลขที่ไม่ซ้ำกัน สมาชิก ≤ N และตรงเงื่อนไข: กำลังสองของความต่าง = LCM ของสองจำนวน HCF ของสองจำนวน = ผลคูณของจำนวนสองจำนวนติดกัน วิธีแก้: ใช้จำนวนติดกัน Z, Z+1 หาผลคูณ Z(Z+1) หาตัวคูณของผลคูณนี้ ตรวจสอบเงื่อนไขที่ 1 ได้คู่คือ Z×Z(Z+1) และ (Z+1)×Z(Z+1) เงื่อนไข ≤ N: (Z+1)×Z(Z+1) ≤ N → Z³ + 2

  19. โปรแกรม C++ หาจำนวนวิธีแสดงจำนวนเต็มเป็นผลรวมกำลัง n ของจำนวนธรรมชาติต่างกัน

    หาจำนวนวิธีที่จำนวนเต็ม X แสดงเป็นผลรวมของกำลัง n ของจำนวนธรรมชาติต่างกัน (unique natural numbers) ตัวอย่าง: X=100, n=2 → 3 วิธี: 100 = 10² 100 = 6² + 8² 100 = 1² + 3² + 4² + 5² + 7² ใช้ Recursion: เริ่มจาก 1 ถึง n-th root ของ X ลบกำลัง n ของจำนวนธรรมชาติติดต่อกัน จนค่าติดลบ ตัวอย่างโค้ด #include&l

  20. โปรแกรม C++ ตรวจสอบว่าสามารถทำภารกิจทั้งหมดเสร็จได้หรือไม่จากข้อกำหนดก่อนหน้า

    ตรวจสอบว่าสามารถทำภารกิจ (tasks) ทั้งหมดเสร็จได้หรือไม่ ตามเงื่อนไขก่อนหน้า (prerequisites) ตัวอย่าง: 3 ภารกิจ prerequisites = [[1,0], [2,1], [3,2]] หมายถึง ต้องทำ 0 ก่อนถึงทำ 1 ได้, ทำ 1 ก่อนถึงทำ 2 ได้... แก้ด้วย Graph + DFS: สร้างกราฟจาก dependencies (edge จาก m ไป n ถ้า n ต้องการ m) DFS ตรวจจับ

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:75/301  20-คอมพิวเตอร์/Page Goto:1 69 70 71 72 73 74 75 76 77 78 79 80 81