C++中查詢具有給定和的數對
給定一個整數陣列,任務是計算可以使用給定陣列值形成的數對的總數,使得數對的和等於給定的和。
輸入 − int arr[] = {2, 8, 1, 5, 11}, sum = 10
輸出 − 和為10的數對個數為 − 2
說明 −
| 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 |
輸入 − int arr[] = {2, 8, -1, 5, -11}, sum = 6
輸出 − 和為6的數對個數為 − 1
說明 −
| 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 |
下面程式中使用的方案如下:
輸入一個整數元素陣列以形成數對和整數和值。
計算陣列的大小,並將資料傳遞給函式以進行進一步處理。
建立一個臨時變數count來匹配具有給定和的數對。
從i為0開始迴圈到陣列大小。
在迴圈內,從j為i+1開始另一個迴圈到陣列大小。
在迴圈內,將臨時變數total設定為arr[i] + arr[j]
如果total == sum,則將count加1。
返回count。
列印結果。
示例
#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;
}輸出
如果我們執行上面的程式碼,它將生成以下輸出:
Count of pairs with given sum 9 is: 2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP