Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các cặp có tổng cho trước trong C ++


Chúng ta được cung cấp một mảng số nguyên và nhiệm vụ là đếm tổng số cặp có thể được tạo thành bằng cách sử dụng các giá trị mảng đã cho sao cho tổng của các cặp bằng tổng đã cho .

Đầu vào - int arr [] ={2, 8, 1, 5, 11}, sum =10

Đầu ra - Đếm các cặp có tổng 13 đã cho là - 2

Giải thích -

a1 a2 a1 + a2
2 8 10
2 1 3
2 5 7
2 11 13
8 1 9
8 5 13
8 11 19
1 5 6
1 11 12
5 11 16

Đầu vào - int arr [] ={2, 8, -1, 5, -11}, sum =6

Đầu ra - Đếm các cặp có tổng 6 đã cho là - 1

Giải thích -

a1 a2 a1 + a2
2 8 10
2 - 1 1
2 5 7
2 - 11 - 9
8 - 1 7
8 5 13
8 - 11 - 3
1 5 6
1 - 11 - 10
5 - 11 - 6

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập một mảng các phần tử số nguyên để tạo thành một cặp và giá trị nguyên của tổng.

  • Tính toán kích thước của một mảng, truyền dữ liệu vào hàm để xử lý thêm

  • Tạo một số biến tạm thời để khớp các cặp với tổng đã cho

  • Bắt đầu vòng lặp FOR từ i đến 0 cho đến hết kích thước của một mảng

  • Bên trong vòng lặp, bắt đầu một vòng lặp FOR khác từ j đến i + 1 cho đến khi kích thước của một mảng

  • Bên trong vòng lặp, đặt tổng biến tạm thời là arr [i] + arr [j]

  • Kiểm tra IF tổng ==tổng sau đó tăng số lượng lên 1

  • Trả lại số lượng

  • In kết quả

Ví dụ

#include <bits/stdc++.h>
using namespace std;
//Count pairs with given sum
int Pair_Sum(int arr[], int size, int sum){
   int count = 0;
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         int total = arr[i] + arr[j];
         if (total == sum){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {2, 6, 1, 7, 9, 8} ;
   int sum = 9;
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs with given sum "<<sum<<" is: "<<Pair_Sum(arr, size, sum);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count of pairs with given sum 9 is: 2