Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. นับจำนวนสี่เหลี่ยมจัตุรัสในสี่เหลี่ยมผืนผ้า ใน C++

    ได้รับสี่เหลี่ยมผืนผ้าขนาด L × B (L ≥ B) ต้องการนับจำนวนสี่เหลี่ยมจัตุรัสทุกขนาดที่อยู่ภายในได้ สูตร สี่เหลี่ยมจัตุรัสขนาด 1×1: L×B ชิ้น สี่เหลี่ยมจัตุรัสขนาด 2×2: (L-1)×(B-1) ชิ้น ... สี่เหลี่ยมจัตุรัสขนาด B×B: (L-B+1)×1 ชิ้น รวม = Σᵢ₌₁ᴮ (L-i+1)(B-i+1) สามารถคำนวณได้จาก: ผลรวม i² สำหรับ i=1..B บ

  2. นับสามเหลี่ยมมุมฉากที่มีเส้นรอบรูปกำหนด ใน C++

    ได้รับเส้นรอบรูป P ของสามเหลี่ยม ต้องการนับจำนวนสามเหลี่ยมมุมฉากที่มีเส้นรอบรูปเท่ากับ P เงื่อนไข a + b + c = P a² + b² = c² (ทฤษฎีพีทาโกรัส) ด้านที่ 3 ตัวอย่าง อินพุต: P = 12 เอาต์พุต: 1 (3, 4, 5) อินพุต: P = 10 เอาต์พุต: 0 แนวทาง ลูป a = 1..P/2, b = a+1..P/3 c = P - a - b ตรวจสอบเงื่อนไขสา

  3. นับจำนวนคำตอบของ x² ≡ 1 (mod p) ในช่วงที่กำหนด ใน C++

    ได้รับจำนวนเต็ม n และ p ต้องการนับจำนวนคำตอบของสมการ x² ≡ 1 (mod p) โดย x อยู่ในช่วง [1, n] ตัวอย่าง อินพุต: n = 5, p = 2 เอาต์พุต: 3 คำอธิบาย: x=1,3,5 ให้ x²%2=1 อินพุต: n = 3, p = 4 เอาต์พุต: 2 คำอธิบาย: x=1,3 ให้ x²%4=1 แนวทาง วนลูป x = 1 ถึง n ถ้า (x*x) % p == 1 เพิ่มตัวนับ ตัวอย่างโค้ด C+

  4. นับขั้นตอนลด N เป็น 1 ตามกฎกำหนด ใน C++

    ได้รับจำนวน N ต้องการนับขั้นตอนลด N ให้เหลือ 1 ตามกฎ: ถ้า N เป็นกำลังสอง: N = N/2 มิฉะนั้น: N = N - (กำลังสองที่ใกล้ที่สุดและน้อยกว่า N) ตัวอย่าง อินพุต: N = 20 เอาต์พุต: 3 ขั้นตอน: 20→4 (20-16), 4→2 (4/2), 2→1 (2/2) อินพุต: N = 32 เอาต์พุต: 5 ขั้นตอน: 32→16→8→4→2→1 (หาร 2 ทุกขั้นตอน) แนวทาง ต

  5. นับทริปเล็ตพีทาโกรัส a²+b²=c² โดย 1≤a≤b≤c≤n ใน C++

    ได้รับจำนวนเต็ม n ต้องการนับทริปเล็ต (a,b,c) ที่เป็นจำนวนเต็มบวก และ a² + b² = c² โดย 1 ≤ a ≤ b ≤ c ≤ n ตัวอย่าง อินพุต: N = 5 เอาต์พุต: 1 (3,4,5) อินพุต: N = 3 เอาต์พุต: 0 แนวทาง ลูป a = 1..n, b = a..n คำนวณ sum = a² + b², c = sqrt(sum) ถ้า c×c == sum และ b ≤ c ≤ n เพิ่มตัวนับ ตัวอย่างโค้ด C+

  6. นับคู่ดัชนีที่มีค่าเท่ากันในอาร์เรย์ ใน C++

    0 ใช้สำหรับจับคู่ถุงมือขนาดเท่ากัน ตัวอย่าง อินพุต: Arr[] = {4, 3, 2, 1, 2, 4}, N = 6 เอาต์พุต: 2 ขั้นตอน: จับคู่ (4,4) → ทำเครื่องหมาย -1, จับคู่ (2,2) → ทำเครื่องหมาย -1 อินพุต: Arr[] = {2, 2, 2, 2, 2}, N = 5 เอาต์พุต: 2 (จับคู่ได้ 2 คู่ เหลือ 1 ตัว) แนวทาง ลูปซ้อน i=0..n-2, j=i+1..n-1 0 เพิ่ม

  7. นับวิธีจับคู่ผู้เข้าร่วมที่แต่ละคนจับคู่ได้สูงสุด 1 คน ใน C++

    ได้รับ N ผู้เข้าร่วม ต้องการนับวิธีจับคู่ที่แต่ละคนจับคู่ได้สูงสุด 1 คน (อาจอยู่คนเดียวได้) — ปัญหา Telephone numbers / Involution numbers ความสัมพันธ์เวียนเกิด (Recurrence) f(0) = 1, f(1) = 1 f(n) = f(n-1) + (n-1) × f(n-2) f(n-1): คนที่ n อยู่คนเดียว (n-1)×f(n-2): คนที่ n จับคู่กับคนใดคนหนึ่งใน n

  8. นับจำนวนที่ความต่างกับตัวเลขย้อนกลับเป็นพหุคูณของ k ใน C++

    ได้รับช่วง [L, R] และจำนวน k ต้องการนับจำนวนในช่วงนี้ที่ |เลข - ย้อนกลับ(เลข)| หาร k ลงตัว ตัวอย่าง อินพุต: L = 21, R = 25, K = 6 เอาต์พุต: 2 คำอธิบาย: 21 ↔ 12, |21-12|=9, 9%6≠0 22 ↔ 22, |22-22|=0, 0%6=0 ✓ 23 ↔ 32, |32-23|=9, 9%6≠0 24 ↔ 42, |42-24|=18, 18%6=0 ✓ 25 ↔ 52, |52-25|=27, 27%6≠0 ตัวที่ผ่า

  9. นับคู่ในอาร์เรย์ที่ผลรวมเป็นกำลังสองสมบูรณ์ ใน C++

    ได้รับอาร์เรย์ N ตัว ต้องการนับคู่ (i,j) ที่ i≠j และ Arr[i]+Arr[j] เป็นกำลังสองสมบูรณ์ (perfect square) ตัวอย่าง อินพุต: Arr[] = {4, 3, 2, 1, 2, 4}, N = 6 เอาต์พุต: 2 คำอธิบาย: Arr[1]+Arr[3]=4, Arr[2]+Arr[4]=4 (4 = 2²) อินพุต: Arr[] = {3, 3, 3, 3, 3}, N = 5 เอาต์พุต: 0 (ผลรวมทุกคู่ = 6 ไม่ใช่กำลัง

  10. นับคู่ไม่ลำดับที่ผลคูณเป็นกำลังสอง ใน C++

    หมายเหตุ: โจทย์ระบุว่า ผลคูณเป็นกำลังสอง แต่ตัวอย่างและโค้ดตรวจสอบ ผลรวมเป็นกำลังสองสมบูรณ์ (perfect square) — นี่คือการนับคู่ที่ผลรวมเป็นกำลังสอง ตัวอย่าง (สำหรับผลรวมเป็นกำลังสอง) อินพุต: Arr[] = {4, 3, 2, 1, 2, 4}, N = 6 เอาต์พุต: 2 คำอธิบาย: Arr[1]+Arr[3]=4, Arr[2]+Arr[4]=4 (4 เป็นกำลังสอง) แน

  11. นับคู่ที่ถูกต้องในอาร์เรย์ตามเงื่อนไขที่กำหนด ใน C++

    ได้รับอาร์เรย์ Arr[] N ตัว ต้องการนับคู่ (i,j) ที่ i≠j และ: Arr[i] == Arr[j] Arr[i] + Arr[j] เป็นเลขคู่ i + j < 120 หมายเหตุ: (i,j) และ (j,i) นับเป็นคู่เดียว ตัวอย่าง อินพุต: Arr[] = {3, 2, 1, 2, 4, 3}, N = 6 เอาต์พุต: 2 คู่ที่ถูกต้อง: (3,3) และ (2,2) อินพุต: Arr[] = {1, 2, 3, 4, 5, 6} เอาต์พุต:

  12. นับวิธีเลือกคู่ที่มีความต่างมากที่สุด ใน C++

    ได้รับอาร์เรย์ Arr[] ต้องการนับจำนวนคู่ (i≠j) ที่ความต่าง |arr[i]-arr[j]| เท่ากับความต่างสูงสุดของคู่ใดๆ ข้อสังเกต ความต่างมากที่สุด = max(arr) - min(arr) นับคู่ที่เป็น (min, max) หรือ (max, min) ตัวอย่าง อินพุต: arr[] = {1, 2, 3, 2, 4, 1, 5} เอาต์พุต: 2 (คู่ (1,5) มี 2 วิธี) อินพุต: arr[] = {2,

  13. นับทริปเล็ตที่ A[i] < B[j] < C[k] ใน C++

    ได้รับอาร์เรย์ 3 ชุด A[], B[], C[] ความยาวเท่ากัน N ต้องการนับทริปเล็ตที่ A[i] < B[j] < C[k] ตัวอย่าง อินพุต: A[]={1,4,5}, B[]={0,2,3}, C[]={0,6,7} เอาต์พุต: 4 คำอธิบาย: (1,2,6), (1,2,7), (1,3,6), (1,3,7) อินพุต: A[]={7,8,9}, B[]={4,5,6}, C[]={1,2,3} เอาต์พุต: 0 แนวทาง ลูป 3 ชั้น i,j,k = 0..n-1

  14. นับตัวหารของ A หรือ B ในช่วงที่กำหนด ใน C++

    ได้รับ L, R, A, B ต้องการนับจำนวนในช่วง [L, R] ที่หาร A ลงตัว หรือหาร B ลงตัว (หรือทั้งคู่) ตัวอย่าง อินพุต: L = 10, R = 15, A = 4, B = 3 เอาต์พุต: 2 (12 หาร 3 และ 4 ลงตัว, 15 หาร 3 ลงตัว) อินพุต: L = 20, R = 30, A = 17, B = 19 เอาต์พุต: 0 แนวทาง วนลูป i = L ถึง R ถ้า i%A==0 หรือ i%B==0 เพิ่มตัว

  15. นับเส้นข้าม (cross lines) ในอาร์เรย์ ใน C++

    ได้รับอาร์เรย์สมาชิกต่างกันและไม่เรียงลำดับ ต้องการนับ เส้นข้าม หลังจากเรียงลำดับแล้ว เส้นข้ามคือจำนวนคู่ที่สลับตำแหน่งกันเมื่อเรียงลำดับ (inversion count) ตัวอย่าง อินพุต: arr[] = {4, 3, 1, 2} เอาต์พุต: 5 อินพุต: arr[] = {0, 1, 5, 3} เอาต์พุต: 1 แนวทาง: ใช้ Insertion Sort นับจำนวนครั้งที่เลขถูก

  16. นับจำนวนที่หาร M ลงตัวในช่วงที่กำหนด ใน C++

    ได้รับ A, B, M ช่วง [A, B] ต้องการนับจำนวนในช่วงนี้ที่หาร M ลงตัว ตัวอย่าง อินพุต: A = 11, B = 20, M = 5 เอาต์พุต: 2 (15, 20) อินพุต: A = 20, B = 50, M = 11 เอาต์พุต: 3 (22, 33, 44) แนวทาง วนลูป i = A ถึง B ถ้า i % M == 0 เพิ่มตัวนับ ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using namesp

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