ได้รับอาร์เรย์ Arr[] และค่า p ต้องการนับทริปเล็ต (i อินพุต: arr[] = {1, 2, 3, 2, 4, 1, 5}, p = 4 เอาต์พุต: 3 คำอธิบาย: (1,2,2), (1,4,1), (2,2,1) — index ต่างกันนับคนละคู่ อินพุต: arr[] = {1, 1, 2, 1, 2, 2}, p = 8 เอาต์พุต: 1 (2,2,2)ตัวอย่าง
แนวทาง
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[], int n, int p) {
int count = 0, prod = 1;
for (int i = 0; i < n-2; i++) {
for (int j = i+1; j < n-1; j++) {
for (int k = j+1; k < n; k++) {
prod = arr[i] * arr[j] * arr[k];
if (prod == p) count++;
}
}
}
return count;
}
int main() {
int Arr[] = {1, 2, 3, 6, 1, 6, 3, 2, 1};
int N = 9;
int product = 6;
cout << endl << "Number of triplets: " << countTriplets(Arr, N, product);
return 0;
}
ผลลัพธ์
Number of triplets: 18