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

    ได้รับอาร์เรย์ที่เก็บความยาวด้านของสามเหลี่ยม ต้องการนับจำนวนสามเหลี่ยมที่สร้างได้จากการเลือก 3 ด้านใดๆ เงื่อนไขสามเหลี่ยม ผลรวมของด้านใดๆ 2 ด้าน ต้องมากกว่าด้านที่ 3 ทุกคู่ a ตัวอย่าง อินพุต: arr[] = {1, 2, 4, 5} เอาต์พุต: 1 (ด้าน 2,4,5) อินพุต: arr[] = {4, 5, 6, 3, 2} เอาต์พุต: 7 แนวทาง ลูป

  2. นับคู่ที่ตัวเลขตัวหนึ่งหารตัวอีกตัวลงตัว ใน C++

    ได้รับอาร์เรย์ N ตัว ต้องการนับคู่ดัชนี (i,j) ที่ i≠j และ arr[i] หาร arr[j] ลงตัว หรือ arr[j] หาร arr[i] ลงตัว ตัวอย่าง อินพุต: Arr[] = {2, 4, 3, 6}, N = 4 เอาต์พุต: 3 คำอธิบาย: (2,4), (2,6), (3,6) อินพุต: Arr[] = {2, 5, 7, 9, 11}, N = 5 เอาต์พุต: 0 แนวทาง ลูปซ้อน 2 ชั้น i=0..n-2, j=i+1..n-1 ตรว

  3. นับคู่ (i,j) ที่ผลรวมคอลัมน์ j มากกว่าผลรวมแถว i ใน C++

    ได้รับเมทริกซ์ N×N ต้องการนับคู่ดัชนี (i,j) ที่ผลรวมสมาชิกคอลัมน์ j มากกว่าผลรวมสมาชิกแถว i ตัวอย่าง rowsum[i]: (0,0),(0,1),(0,3),(2,0),(2,1),(2,3),(3,0),(3,1),(3,3) = 9 คู่ แนวทาง คำนวณ rowsum[i] และ colsum[j] โดยวนเมทริกซ์ครั้งเดียว ลูปซ้อน 2 ชั้นเปรียบเทียบ rowsum[i] นับคู่ที่ตรงเงื่อนไข ต

  4. นับจำนวนการดำเนินการเพื่อลดค่าตัวเลขให้น้อยกว่า 0 ใน C++

    ได้รับจำนวนเต็มบวก K และอาร์เรย์ Ops[] เป้าหมายคือหาจำนวนการดำเนินการที่ต้องทำเพื่อให้ K < 0 กติกาการดำเนินการ การดำเนินการครั้งแรก: K + Ops[0] ต่อไป: บวก Ops[i] ต่อเนื่องedly โดย i วิ่งแบบวนรอบ (circular) 0 ≤ i < N จนกว่า K < 0 ข้อสังเกตสำคัญ ถ้าผลรวมของ Ops[] ≥ 0 แล้ว K จะไม่มีวันน้อยกว่า 0 →

  5. นับจำนวนออบเจ็กต์ด้วยฟังก์ชันสมาชิก Static ใน C++

    ตัวอย่างการนับจำนวนออบเจ็กต์ของคลาสที่ถูกสร้างขึ้น โดยใช้ฟังก์ชันสมาชิก static (static member function) หลักการ ข้อมูลสมาชิก static (static int count) ถูกแบ่งปันโดยทุกออบเจ็กต์ของคลาส ถ้าไม่กำหนดค่าเริ่มต้น จะถูกเริ่มต้นที่ 0 อัตโนมัติ ฟังก์ชันสมาชิก static สามารถเข้าถึงเฉพาะข้อมูลสมาชิก static ขอ

  6. นับจำนวนที่มีหลักแรกและหลักสุดท้ายเหมือนกัน ใน C++

    ได้รับช่วง [first, last] ต้องการนับจำนวนในช่วงนี้ที่มีหลักแรกและหลักสุดท้ายเหมือนกัน เช่น 232 (หลักแรก=2, หลักสุดท้าย=2) ตัวอย่าง อินพุต: first = 8, last = 40 เอาต์พุต: 5 คำอธิบาย: 8, 9, 11, 22, 33 อินพุต: first = 100, last = 200 เอาต์พุต: 10 คำอธิบาย: 101, 111, 121, 131, 141, 151, 161, 171, 181,

  7. นับคู่ลำดับที่มีผลคูณเป็นเลขคู่และเลขคี่ ใน C++

    ได้รับอาร์เรย์ n ตัว ต้องการนับคู่ลำดับ (arr[x], arr[y]) ที่ผลคูณเป็นเลขคู่หรือเลขคี่ คู่ (i,j) และ (j,i) นับแยกกัน ตัวอย่าง อินพุต: Arr[] = {1, 1, 2, 3}, N = 4 เอาต์พุต: ผลคูณคู่: 6, ผลคูณคี่: 6 อินพุต: Arr[] = {2, 2, 2}, N = 3 เอาต์พุต: ผลคูณคู่: 6, ผลคูณคี่: 0 แนวทาง ลูปซ้อน 2 ชั้น i=0..n-2,

  8. นับคู่ลำดับที่มีผลรวมเป็นเลขคู่และเลขคี่ ใน C++

    ได้รับอาร์เรย์ n ตัว ต้องการนับคู่ลำดับ (arr[x], arr[y]) ที่ผลรวมเป็นเลขคู่หรือเลขคี่ คู่ (i,j) และ (j,i) นับแยกกัน ตัวอย่าง อินพุต: Arr[] = {1, 1, 2, 3}, N = 4 เอาต์พุต: ผลรวมคู่: 6, ผลรวมคี่: 6 อินพุต: Arr[] = {2, 2, 2}, N = 3 เอาต์พุต: ผลรวมคู่: 6, ผลรวมคี่: 0 แนวทาง ลูปซ้อน 2 ชั้น i=0..n-2,

  9. นับคู่ลำดับ (i,j) ที่ arr[i]*arr[j] > arr[i]+arr[j] ใน C++

    ได้รับอาร์เรย์จำนวนเต็มบวก n ตัว ต้องการนับคู่ลำดับ (i,j) ที่ 0 ≤ i < j arr[i]+arr[j] ตัวอย่าง อินพุต: Arr[] = {1, 1, 2, 3}, N = 4 เอาต์พุต: 1 คำอธิบาย: 2+3=5 อินพุต: Arr[] = {2, 2, 2}, N = 3 เอาต์พุต: 0 (2×2=4, 2+2=4 ไม่มากกว่า) แนวทาง ใช้ลูป for ซ้อน 2 ชั้น: i จาก 0 ถึง n-2, j จาก i+1 ถึง n-1

  10. นับจำนวน m หลักที่หารด้วย n ลงตัว ใน C++

    ได้รับจำนวนเต็ม m และ n ต้องการนับจำนวน m หลักที่หารด้วย n ลงตัว ตัวอย่าง อินพุต: m = 2, n = 9 เอาต์พุต: 10 คำอธิบาย: เลข 2 หลัก (10-99) ที่หาร 9 ลงตัว: 18, 27, 36, 45, 54, 63, 72, 81, 90, 99 อินพุต: m = 3, n = 300 เอาต์พุต: 3 (300, 600, 900) แนวทาง หาเลข m-1 หลักมากที่สุด (num1) และ m หลักมากที

  11. นับจำนวนที่มีหลักหน่วยเป็น k ในช่วงที่กำหนด ใน C++

    ได้รับช่วง [first, last] และตัวเลข k ต้องการนับจำนวนในช่วงนี้ที่มีหลักหน่วยเท่ากับ k ตัวอย่าง อินพุต: first = 8, last = 40, k = 8 เอาต์พุต: 4 คำอธิบาย: 8, 18, 28, 38 อินพุต: first = 100, last = 200, k = 9 เอาต์พุต: 10 คำอธิบาย: 109, 119, 129, 139, 149, 159, 169, 179, 189, 199 แนวทาง วนลูป i จาก

  12. นับจำนวนที่เป็นกำลังสองและกำลังสามพร้อมกันถึง N ใน C++

    ได้รับจำนวน N ต้องการนับจำนวนเต็มบวก ≤ N ที่เป็นกำลังสองและกำลังสามพร้อมกัน เช่น 1 (1²=1³), 64 (8²=4³) ข้อสังเกต ตัวเลขที่เป็นทั้งกำลังสองและกำลังสาม คือกำลังหก (sixth power): 1⁶=1, 2⁶=64, 3⁶=729, 4⁶=4096... ตัวอย่าง อินพุต: N = 100 เอาต์พุต: 2 (1 และ 64) อินพุต: N = 5000 เอาต์พุต: 3 (1, 64, 4096

  13. นับจำนวนครั้งของสมาชิกที่ซ้ำในอาร์เรย์เรียงลำดับต่อเนื่อง ใน C++

    ได้รับอาร์เรย์ตัวเลขต่อเนื่อง (consecutive) ความยาว n มีตัวเลขเพียงตัวเดียวที่ซ้ำมากกว่า 1 ครั้ง ต้องการหาจำนวนครั้งที่ตัวเลขนั้นซ้ำ ตัวอย่าง อินพุต: arr[] = {0, 1, 2, 3, 3, 3}, N = 6 เอาต์พุต: 3 (เลข 3 ซ้ำ 3 ครั้ง) อินพุต: arr[] = {1, 2, 3, 4, 4, 4, 4, 4, 5, 6}, N = 10 เอาต์พุต: 5 (เลข 4 ซ้ำ 5 คร

  14. นับจำนวนที่สามารถทำให้เป็นกำลังสองได้โดยการบวก 1 ใน C++

    ได้รับอาร์เรย์จำนวนเต็มบวก ต้องการนับจำนวนที่เป็นกำลังสองอยู่แล้ว หรือจะกลายเป็นกำลังสองได้หากบวก 1 เข้าไป (สูงสุด 1 ครั้ง) แนวทาง ใช้ log2 ตรวจสอบ: ถ้า floor(log2(x)) == ceil(log2(x)) แสดงว่า x เป็นกำลังสอง ตรวจสอบทั้งตัวเลขเดิมและตัวเลข+1 ตัวอย่าง อินพุต: arr[] = {1, 3, 2, 5, 6} เอาต์พุต: 3 คำอธ

  15. นับสมาชิกที่ความต่างสัมบูรณ์กับผลรวมสมาชิกอื่นๆ มากกว่า k ใน C++

    ได้รับอาร์เรย์จำนวนเต็ม ต้องการนับจำนวนสมาชิกที่ความต่างสัมบูรณ์ระหว่างผลรวมของสมาชิกอื่นทั้งหมดกับสมาชิกตัวนั้น มากกว่า k สูตร ผลรวมทั้งหมด = sum สำหรับสมาชิก arr[i]: ผลรวมของสมาชิกอื่น = sum - arr[i] ความต่างสัมบูรณ์ = |(sum - arr[i]) - arr[i]| = |sum - 2×arr[i]| k ตัวอย่าง อินพุต: arr[] = {1,

  16. หาจำนวนโหนดสูงสุดที่ไม่ได้เชื่อมต่อกับขอบใดๆ ในกราฟ ใน C++

    ได้รับกราฟที่มีโหนดและขอบ ต้องการหาจำนวนโหนดสูงสุดที่ไม่ได้เป็นส่วนหนึ่งของขอบใดๆ เรารู้ว่าในกราฟสมบูรณ์ (complete graph) จำนวนขอบสูงสุดคือ n(n-1)/2 โดยที่ n คือจำนวนโหนด แนวคิด หาจำนวนโหนดน้อยที่สุดที่จำเป็นสร้างขอบที่กำหนด โหนดที่เหลือจะเป็นโหนดที่ไม่ได้เชื่อมต่อ ขอบ = n(n-1)/2 → 2×ขอบ = n(n-1)

  17. นับควอดรูเพลตที่มีผลรวมเท่ากับค่าที่กำหนด ใน C++

    ได้รับอาร์เรย์ 4 ชุด ต้องการหาจำนวนควอดรูเพลต (4 ตัวเลข) ที่แต่ละตัวมาจากอาร์เรย์ต่างกัน และผลรวมเท่ากับค่า Sum ที่กำหนด ตัวอย่าง อินพุต: A[] = {1, 3, 1}, B[] = {2, 4, 5}, C[] = {1, 1, 2}, D[] = {4, 4, 0}, Sum = 5 เอาต์พุต: 2 คำอธิบาย: 2 ควอดรูเพลต: (1,2,2,0) จาก A[0],B[0],C[2],D[2] และ (1,2,2,0) จ

  18. นับซับสตริงฐานสองที่มีค่าทศนิยมเป็นเลขคู่ ใน C++

    ได้รับสตริงที่ประกอบด้วย 0 และ 1 เท่านั้น แทนตัวเลขฐานสองอ่านจากซ้ายไปขวา (เช่น 001 คือ 4 ไม่ใช่ 1) เป้าหมายคือหาจำนวนซับสตริงที่แทนค่าทศนิยมเป็นเลขคู่ ข้อสังเกตสำคัญ ในระบบฐานสอง ตัวเลขจะเป็นเลขคู่ก็ต่อเมื่อหลักสุดท้าย (LSB) เป็น 0 แต่เนื่องจากอ่านจากซ้ายไปขวา ดังนั้นตัวอักษรแรกของซับสตริง (str[0]

  19. นับจำนวนซับสตริงที่ค่าตัวเลขมากกว่า X ใน C++

    ได้รับสตริงที่ประกอบด้วยตัวเลข 0-9 ซึ่งแทนค่าทศนิยม เป้าหมายคือหาจำนวนซับสตริงที่แทนค่าทศนิยมมากกว่า X โดยเงื่อนไขคือซับสตริงต้องไม่ขึ้นต้นด้วย 0 เช่นใน 2021 ซับสตริง 02, 021, 0 จะไม่นับ ตัวอย่าง อินพุต: str = 123, X = 12 เอาต์พุต: 2 คำอธิบาย: 12 คือ 123 และ 23 อินพุต: str = 111, X = 100 เอาต์พุต:

  20. นับจำนวนเลขคู่ในช่วง [L, R] ที่ผลรวมหลักของตัวเลขหารด้วย 3 ลงตัว ใน C++

    เราได้รับตัวเลขสองจำนวนคือ L และ R ซึ่งกำหนดช่วง [L, R] เป้าหมายคือการหาจำนวนเลขคู่ทั้งหมดในช่วงนี้ที่ผลรวมของหลักตัวเลขหารด้วย 3 ลงตัว ตัวอย่าง อินพุต: L = 10, R = 20 เอาต์พุต: จำนวนเลขคู่ในช่วง [L, R] ที่ผลรวมหลักหารด้วย 3 ลงตัว: 2 คำอธิบาย: เลขคู่ระหว่าง 10 ถึง 20 ได้แก่ 10, 12, 14, 16, 18, 20 ซ

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