Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับสี่เท่าจากสี่อาร์เรย์ที่จัดเรียงซึ่งมีผลรวมเท่ากับค่าที่กำหนด x ใน C++


เราได้รับสี่อาร์เรย์ A[], B[], C[] และ D[] เป้าหมายคือการค้นหาองค์ประกอบสี่เท่าทั้งหมดของอาร์เรย์เหล่านี้ โดยที่ A[i]+B[j]+C[k]+D[l] =x อาร์เรย์ทั้งสี่มีจำนวนองค์ประกอบเท่ากัน N.

เราจะทำสิ่งนี้โดยสำรวจแต่ละอาร์เรย์หนึ่งครั้งและเปรียบเทียบว่า A[i]+B[j]+C[j]+D[l]==x ถ้านับเพิ่มจริง

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล

<ก่อน>A[]={ 1,2,3}; ข[]={ 2,3,2}; ค[]={ 4,3,1}; ด[]={ 3,1,1 }; X=12

ผลผลิต

จำนวนสี่เท่า:4

คำอธิบาย

Quadruples เช่น ( A[i] B[j] C[k] D[l] ) คือ:(2 3 4 3) , (3 2 4 3), (3 3 3 3), (3 2 4 3)จำนวนสี่เท่า :4

ป้อนข้อมูล

<ก่อน>A[]={ 1,1,1}; ข[]={ 2,2,2}; ค[]={ 3,3,3}; ด[]={ 4,4,4 }; X=15

ผลผลิต

จำนวนสี่เท่า:0

คำอธิบาย

ไม่สามารถจับคู่องค์ประกอบดังกล่าวได้

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้อาร์เรย์จำนวนเต็ม A[],B[], C[] และ D[] ที่มีความยาวเท่ากันซึ่งเริ่มต้นด้วยตัวเลขสุ่ม

  • ใช้ตัวแปร N เพื่อเก็บความยาว

  • ฟังก์ชัน countQuad(int a[],int b[],int c[],d[],int x, int n) รับอาร์เรย์ทั้งหมดเป็นอินพุตที่มีความยาวเท่ากัน n และส่งคืนการนับ

  • สำรวจโดยใช้สี่ลูปสำหรับแต่ละอาร์เรย์

  • วงนอกสุด 0<=i

  • เปรียบเทียบว่า a[i]+b[j]+c[k]+d[l]==x. ถ้านับเพิ่มจริง

  • เมื่อสิ้นสุดการวนซ้ำทั้งหมด การนับจะมีสี่เท่าด้วยผลรวม x

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include ใช้เนมสเปซ std;int countQuads(int a[],int b[],int c[],int d[],int x, int n){ จำนวน int =0; สำหรับ (int i =0; i  

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

จำนวนสี่เท่า :0