Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. นับคู่ (a,b) ที่ผลรวมกำลังสามเท่ากับ N (a³+b³=N) ใน C++

    ภาพรวมปัญหา ให้จำนวน N ต้องการนับคู่มี序ของจำนวนเต็มบวก (a, b) ที่ a³ + b³ = N ตัวอย่าง Input: N = 35 Output: 2 คำอธิบาย: (2,3) และ (3,2) — 2³+3³=8+27=35 Input: N = 100 Output: 0 แนวทางแก้ปัญหา วนลูป a จาก 1 ถึง ⌊∛N⌋ (cube root of N) คำนวณ b³ = N - a³ คำนวณ b = ∛(b³) (ปัดเศษ) 0 ให้เพิ่ม

  2. นับคู่ (a,b) ที่ผลรวมกำลังสองเท่ากับ N (a²+b²=N) ใน C++

    ภาพรวมปัญหา ให้จำนวน N ต้องการนับคู่มี序ของจำนวนเต็มบวก (a, b) ที่ a² + b² = N ตัวอย่าง Input: N = 100 Output: 2 คำอธิบาย: (6,8) และ (8,6) — 6²+8²=36+64=100 Input: N = 11 Output: 0 แนวทางแก้ปัญหา วนลูป a จาก 1 ถึง ⌊√N⌋ คำนวณ b² = N - a² ถ้า b² เป็นกำลังสองสมบูรณ์ (sqrt(b²) เป็นจำนวนเต็ม) ให

  3. นับคู่มี序 (i,j) ที่ผลรวมหาร A และ B ลงตัวใน C++

    ภาพรวมปัญหา ให้ N, M, A, B ต้องการนับคู่มี序 (i, j) ที่ 1≤i≤N, 1≤j≤M และ (i+j) หาร A ลงตัว และหาร B ลงตัว ตัวอย่าง Input: N=5, M=10, A=2, B=3 Output: 9 คำอธิบาย: (1,5), (2,4), (2,10), (3,3), (3,9), (4,2), (4,8), (5,1), (5,7) Input: N=10, M=10, A=10, B=11 Output: 0 ข้อสังเกตสำคัญ (i+j) หาร A และ B

  4. นับคู่จากอาร์เรย์สองตัวที่ผลรวมเท่ากับ K ใน C++

    ภาพรวมปัญหา ให้อาร์เรย์ Arr1[], Arr2[] และจำนวน K ต้องการหาจำนวนคู่ที่ไม่ซ้ำกัน (unique pairs) (Arr1[i], Arr2[j]) ที่ผลรวมเท่ากับ K ตัวอย่าง Input: Arr1={1,3,2,4,3,2}, Arr2={0,2,1,2,3}, K=4 Output: 4 คำอธิบาย: คู่ที่ไม่ซ้ำ: (1,3), (3,1), (2,2) — รอ นับ (3,1) ซ้ำแค่ 1 ครั้ง รวม 4 คู่ Input: Arr1={0

  5. นับจำนวนในช่วง [1,N] ที่สร้างได้จาก X และ Y ใน C++

    ภาพรวมปัญหา ให้จำนวน X, Y และ N (ช่วง [1,N]) ต้องการนับจำนวนในช่วงที่สามารถสร้างได้จาก X และ Y เท่านั้น หลายครั้งก็ได้ เช่น X=2, Y=3 → 6 = 2+2+2 หรือ 3+3, 7 = 2+2+3 ตัวอย่าง Input: N=10, X=4, Y=3 Output: 7 คำอธิบาย: 3, 4, 6(3+3), 7(3+4), 8(4+4), 9(3+3+3), 10(3+3+4) Input: N=10, X=5, Y=4 Output: 5

  6. นับจำนวนกำลังสองและไม่ใช่กำลังสองก่อน N ใน C++

    ภาพรวมปัญหา ให้จำนวน N ต้องการนับจำนวนกำลังสอง (perfect squares) และไม่ใช่กำลังสอง ที่น้อยกว่าหรือเท่ากับ N ตัวอย่าง Input: N = 20 Output: Square: 4, Non-square: 16 คำอธิบาย: กำลังสอง: 1, 4, 9, 16 Input: N = 40 Output: Square: 6, Non-square: 34 คำอธิบาย: กำลังสอง: 1, 4, 9, 16, 25, 36 แนวทาง Naive

  7. นับสตริงที่ลงท้ายด้วยรูปแบบที่กำหนดใน C++

    ภาพรวมปัญหา ให้อาร์เรย์สตริง str[] และรูปแบบ pattern pat ต้องการนับสตริงใน str[] ที่ลงท้ายด้วย pat ตัวอย่าง Input: str[] = {kittens, hens, deers, dogs}, pat = ens Output: 2 คำอธิบาย: kittens และ hens ลงท้ายด้วย ens Input: str[] = {tickets, wickets, bats, cricket}, pat = et Output: 1 คำอธิบาย: wick

  8. นับจำนวนเฉพาะในช่วง [START, END] ใน C++

    ภาพรวมปัญหา ให้ช่วง START และ END ต้องการนับจำนวนเฉพาะ (prime numbers) ในช่วง [START, END] ตัวอย่าง Input: Start=1, End=20 Output: 8 คำอธิบาย: 2, 3, 5, 7, 11, 13, 17, 19 Input: Start=100, End=200 Output: 21 แนวทาง Naive (ตรวจสอบแต่ละตัว) ฟังก์ชัน isprime(int num) ตรวจสอบจำนวนเฉพาะ วนลูป i จา

  9. นับ quadruples จากอาร์เรย์ 4 ตัวที่เรียงแล้ว ผลรวมเท่ากับ x ใน C++

    ภาพรวมปัญหา ให้อาร์เรย์ 4 ตัว A[], B[], C[], D[] ขนาดเท่ากัน N ต้องการนับ quadruples (A[i], B[j], C[k], D[l]) ที่ผลรวมเท่ากับ x ตัวอย่าง Input: A={1,2,3}, B={2,3,2}, C={4,3,1}, D={3,1,1}, X=12 Output: 4 คำอธิบาย: (2,3,4,3), (3,2,4,3), (3,3,3,3), (3,2,4,3) Input: A={1,1,1}, B={2,2,2}, C={3,3,3}, D=

  10. นับจำนวนชิ้นของวงกลมหลังตัด N ครั้งใน C++

    ภาพรวมปัญหา ให้จำนวนเต็ม N แทนจำนวนครั้งที่ตัดวงกลม 2 มิติ แต่ละครั้งตัดแบ่งวงกลมเป็น 2 ส่วน ต้องการหาจำนวนชิ้นทั้งหมดหลังตัด N ครั้ง สูตรคำนวณ จำนวนชิ้น = 2 × N เพราะแต่ละครั้งที่ตัดจะเพิ่มจำนวนชิ้นขึ้น 2 ชิ้น (ตัด 1 ชิ้นกลายเป็น 2 ชิ้น) ตัวอย่าง Input: N = 1 Output: 2 Input: N = 3 Output: 6 โค

  11. นับจำนวนที่ผลรวมกับ X เท่ากับ XOR กับ X ใน C++

    ภาพรวมปัญหา ให้จำนวน X ต้องการหาจำนวนระหว่าง 0 ถึง X ที่ทำให้ (X + i) == (X ^ i) ข้อสังเกตสำคัญ เงื่อนไข (X + i) == (X ^ i) เป็นจริงก็ต่อเมื่อ ไม่มีการพก (carry) ในการบวก X + i แบบไบนารี เกิดขึ้นเมื่อ X และ i ไม่มีบิต 1 ตรงตำแหน่งเดียวกัน กล่าวคือ X & i == 0 นี่คือเงื่อนไขเดียวกับปัญหา O

  12. นับจำนวนที่ผลต่างกับ N เท่ากับ XOR กับ N ใน C++

    ภาพรวมปัญหา ให้จำนวน N ต้องการหาจำนวนระหว่าง 0 ถึง N ที่ทำให้ (N - i) == (N ^ i) ข้อสังเกตสำคัญ เงื่อนไข (N - i) == (N ^ i) เป็นจริงก็ต่อเมื่อ ไม่มีการยืม (borrow) ในการลบ N - i แบบไบนารี เกิดขึ้นเมื่อบิต 1 ของ i เป็น subset ของบิต 1 ของ N กล่าวคือ i & N == i (ทุกบิต 1 ของ i ต้องเป็น 1 ใน

  13. นับจำนวนที่ OR กับ N เท่ากับ XOR กับ N ใน C++

    ภาพรวมปัญหา ให้จำนวน N ต้องการหาจำนวนระหว่าง 0 ถึง N ที่ทำให้ (N | i) == (N ^ i) ข้อสังเกตสำคัญ เงื่อนไข (N | i) == (N ^ i) เป็นจริงก็ต่อเมื่อ N และ i ไม่มีบิต 1 ตรงตำแหน่งเดียวกัน N | i = 1 ก็ต่อเมื่อ N=1 หรือ i=1 (หรือทั้งคู่) N ^ i = 1 ก็ต่อเมื่อ N และ i ต่างกัน (หนึ่งเป็น 1 อีกหนึ่งเป็น 0)

  14. นับจำนวนวิธีแบ่งจำนวนเป็น 3 ส่วนใน C++

    ภาพรวมปัญหา ให้จำนวนเต็มบวก N (1 ≤ N ≤ 5000) ต้องการนับจำนวนวิธีแบ่ง N เป็นผลรวมของ 3 จำนวนเต็มบวก ส่วนต่างๆ อาจเท่ากันหรือไม่เท่ากันก็ได้ ตัวอย่าง Input: N = 5 Output: 2 คำอธิบาย: (1,1,3) และ (1,2,2) Input: N = 9 Output: 7 คำอธิบาย: (1,1,7), (1,2,6), (1,3,5), (1,4,4), (2,2,5), (2,3,4), (3,3,3) แ

  15. นับจำนวนศูนย์ต่อท้ายในผลคูณของอาร์เรย์ใน C++

    ภาพรวมปัญหา ให้อาร์เรย์ Arr[] ของจำนวนเต็มบวกขนาด N ต้องการหาจำนวนศูนย์ต่อท้าย (trailing zeros) ในผลคูณของทุกสมาชิกในอาร์เรย์ หลักการคำนวณ ศูนย์ต่อท้ายเกิดจากตัวประกอบ 10 = 2 × 5 นับจำนวนตัวประกอบ 2 และ 5 ในการแยกตัวประกอบของทุกจำนวน จำนวนศูนย์ต่อท้าย = min(จำนวน 2, จำนวน 5) ตัวอย่าง: 2⁴ × 5

  16. นับจำนวนในอาร์เรย์ที่สามารถเขียนเป็นผลรวมของจำนวนเฉพาะคู่หรือคี่ได้ใน C++

    ภาพรวมปัญหา ให้อาร์เรย์ Arr[] ของจำนวนเต็มบวกขนาด N ต้องการนับจำนวนสมาชิกที่สามารถเขียนเป็นผลรวมของจำนวนเฉพาะที่มีค่าเท่ากันได้ เช่น 4 = 2+2, 6 = 3+3 หรือ 2+2+2 ข้อสังเกตทางคณิตศาสตร์ ผลรวมของจำนวนเฉพาะคู่ (2) หรือคี่ (3,5,7...) จะได้เลขคู่เสมอ ยกเว้น 0 และ 2 แล้ว เลขคู่ทุกตัวสามารถเขียนเป็นผล

  17. นับจำนวนที่มีตัวเลข 1 ติดกันทั้งหมดในรูปแบบไบนารีใน C++

    ภาพรวมปัญหา ให้จำนวนเต็มบวก N ต้องการนับจำนวนที่น้อยกว่าหรือเท่ากับ N ที่มีตัวเลข 1 ติดกันทั้งหมดในรูปแบบไบนารี เช่น 1 (1), 3 (11), 7 (111), 15 (1111) เป็นต้น ข้อสังเกตสำคัญ จำนวนเหล่านี้มีรูปแบบเป็น 2ⁱ - 1 โดย i เริ่มจาก 1 i=1: 2¹-1 = 1 (1) i=2: 2²-1 = 3 (11) i=3: 2³-1 = 7 (111) i=4: 2⁴-1

  18. นับจำนวนคู่สามจุด (A, B, C) ในพื้นที่ 2 มิติที่เป็นจุดกึ่งกลางระหว่างสองจุดที่เหลือใน C++

    ภาพรวมปัญหา ให้ชุดของจุด N จุดบนพื้นที่ 2 มิติ เป้าหมายคือการนับจำนวน triplet (A, B, C) ที่จุดหนึ่งเป็นจุดกึ่งกลางของเส้นตรงที่เชื่อมต่ออีกสองจุด กล่าวคือ B เป็นจุดกึ่งกลางของ A และ C (หรือการจัดเรียงอื่นๆ ของ A, B, C) แนวคิดหลัก เก็บจุดทั้งหมดเป็นคู่ <int, int> ใน vector นำจุดทั้งหมดเข้

  19. นับวิธีไปถึงขั้นที่ n โดยใช้ขั้น 1, 2 หรือ 3 ใน C++

    เราได้รับจำนวนขั้นทั้งหมดในบันไดคือ n บุคคลสามารถไปถึงชั้นถัดไปโดยข้าม 1, 2 หรือ 3 ขั้นในคราวเดียว เป้าหมายคือหาจำนวนวิธีที่ชั้นถัดไปสามารถไปถึงได้โดยการทำเช่นนั้นเราจะใช้วิธีแบบเรียกซ้ำโดยคำนึงถึงว่าเพื่อไปถึงขั้นที่ i บุคคลต้องกระโดดจากขั้น i-1 (ข้าม 1 ขั้น), ขั้น i-2 (ข้าม 2 ขั้น) หรือขั้น i-3 (ข

  20. นับวิธีการสะกดตัวเลขที่มีตัวเลขซ้ำใน C++

    เราได้รับตัวเลขที่มีตัวเลขซ้ำมากเป็นสตริง เป้าหมายคือหาจำนวนวิธีในการสะกดมัน ตัวอย่าง 112233 สามารถสะกดได้เป็น double one, double two double three หรือ one one two two three threeเราจะทำได้โดยการตรวจสอบตัวเลขที่ติดกัน ถ้าตัวเลขคือ 13 มีเพียงหนึ่งวิธีสะกดคือ one three (20) ถ้าตัวเลขคือ 113 วิธีคือ do

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:222/301  20-คอมพิวเตอร์/Page Goto:1 216 217 218 219 220 221 222 223 224 225 226 227 228