Chúng tôi được cung cấp một mảng có kích thước bất kỳ chứa các phần tử số nguyên và nhiệm vụ là tính số lượng các cặp trong một mảng sao cho một phần tử của một cặp chia cho một phần tử khác của một cặp.
Mảng là một loại cấu trúc dữ liệu có thể lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng kiểu. Mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng kiểu.
Ví dụ
Input − int arr[] = {1, 2, 3, 6} Output − count is 4
Giải thích - (1,2), (1,3), (1,6) và (3,6) là các cặp trong đó một phần tử của cặp chia khác vì 1 có thể chia bất kỳ số nào và 3 cũng chia 6. Vậy số đếm là 4.
Input − int arr[] = {2, 5, 10} Output − count is 2
Giải thích - (2, 10) và (5,10) là các cặp trong đó một phần tử của cặp chia khác vì 2 chia 10 và 5 cũng chia 10. Vậy số đếm là 2.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Tạo một mảng, giả sử arr []
-
Tính độ dài của mảng bằng cách sử dụng hàm length () sẽ trả về giá trị nguyên theo các phần tử trong mảng.
-
Lấy một biến tạm thời sẽ lưu trữ số lượng phần tử chỉ có trong một mảng.
-
Bắt đầu vòng lặp for với i đến 0 và i nhỏ hơn kích thước của một mảng
-
Bên trong vòng lặp, hãy bắt đầu một vòng lặp khác với j đến i + 1 cho đến khi j nhỏ hơn kích thước
-
Bên trong vòng lặp, hãy kiểm tra xem arr [i]% arr [j] =0 hoặc arr [j]% arr [i] =0 rồi tăng số lượng
-
Trả lại số lượng
-
In kết quả.
Ví dụ
#include <iostream> using namespace std; int divisibles(int a[], int size){ int result = 0; // Iterating through all pairs for (int i=0; i<size; i++){ for (int j=i+1; j<size; j++){ if (a[i] % a[j] == 0 || a[j] % a[i] == 0){ result++; } } } return result; } int main(){ int a[] = {1, 4, 7, 8, 9}; int size = sizeof(a) / sizeof(a[0]); cout <<"count is " <<divisibles(a, size); return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -
Số lượngcount is 5