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

จำนวนคู่สูงสุดที่สร้างผลรวมเท่ากันใน C++


เราได้รับอาร์เรย์ของจำนวนเต็ม เป้าหมายคือการหาจำนวนคู่สูงสุดในอาร์เรย์ซึ่งเมื่อเพิ่มแล้วจะได้ผลรวมเท่ากัน เราต้องหาจำนวนสูงสุดของคู่ดังกล่าว

อินพุต

Arr[]={ 1,2,3,4,2 }

ผลลัพธ์

จำนวนคู่สูงสุดที่มีผลรวมเท่ากัน :3

คำอธิบาย − ผลรวมของคู่ตัวเลข −

<ก่อน>{1,2}, {1,2} ผลรวม:3{1,3},{2,2} ผลรวม:4{1,4},{2,3},{3,2} ผลรวม:5{2,4} ผลรวม:6{3,4} ผลรวม:7จำนวนคู่สูงสุดที่มีผลรวมเท่ากันคือ 3 (สำหรับผลรวม =5 )

อินพุต

Arr[]={ 5,3,6,1 }

ผลลัพธ์

จำนวนคู่สูงสุดที่มีผลรวมเท่ากัน :1

คำอธิบาย − ผลรวมของคู่ตัวเลข −

{5,3} ผลรวม:8{5,6} ผลรวม:11{5,1} ผลรวม:6{3,6} ผลรวม:9{3,1} ผลรวม:4{6,1} ผลรวม:7จำนวนคู่สูงสุดที่มีผลรวมเท่ากันคือ 1

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

  • อาร์เรย์จำนวนเต็ม Arr[] ใช้เพื่อเก็บจำนวนเต็ม

  • จำนวนเต็ม 'ขนาด' เก็บความยาวของอาร์เรย์

  • ฟังก์ชัน countEqualSum( int arr[], int n) รับอาร์เรย์ ขนาดเป็นอินพุตและส่งกลับจำนวนสูงสุดของคู่ที่สร้างผลรวมเดียวกัน

  • ก่อนอื่น เราจะนำอาร์เรย์ 'ผลรวม' เพื่อเก็บความถี่ของผลรวมที่ไม่ซ้ำ

  • ในแต่ละดัชนีของผลรวม ให้นับการเพิ่มขององค์ประกอบนั้น

  • แต่ละดัชนีของผลรวมอาร์เรย์คือผลรวมของคู่ขององค์ประกอบ

  • ค้นหาจำนวนดังกล่าวสูงสุดโดยค้นหาองค์ประกอบสูงสุดภายในผลรวมอาร์เรย์และเก็บไว้ใน maxC

  • คืนค่า maxC เป็นผลลัพธ์

ตัวอย่าง

#include ใช้เนมสเปซ std;// ฟังก์ชันเพื่อคืนค่าสูงสุด// จำนวนคู่ที่มีค่า sumint countEqualSum(int arr[], int n){ int sum[20]={0 }; int maxC =0; // เก็บจำนวนรวมของคู่ทั้งหมดสำหรับ (int i =0; i maxC) maxC=sum[i]; คืนค่า maxC;}int main(){ int Arr[] ={ 1,2,3,4,2 }; ขนาด int =5; cout <<”จำนวนคู่สูงสุดที่สร้างผลรวมเท่ากัน” < 

ผลลัพธ์

จำนวนคู่สูงสุดที่สร้างผลรวมเท่ากัน :3