Cho một mảng arr [n] gồm n số nguyên, nhiệm vụ là tìm tích của tất cả các phần tử liên tiếp theo cặp.
Các phần tử liên tiếp trong một mảng arr [], nếu chúng ta đang ở phần tử thứ i, tức là arr [i] thì phần tử liên tiếp của nó sẽ là arr [i + 1] hoặc arr [i-1], vì vậy tích sẽ là arr [ i] * arr [i + 1] hoặc arr [i] * arr [i-1].
Đầu vào
arr[] = {1, 2, 3, 4}
Đầu ra
2, 6, 12
Giải thích
Splitting into pairs {1,2}, {2, 3}, {3, 4} Their results will be 1*2 = 2, 2*3 = 6, 3*4 = 12
Đầu vào
arr[] = {9, 5, 1, 2, 6, 10}
Đầu ra
45, 5, 2, 12, 60
Giải thích
Splitting into pairs {9, 5}, {5, 1}, {1, 2}, {2, 6}, {6, 10} Their results will be 9*5 = 45, 5*1 = 5, 1*2 = 2, 2*6=12, 6*10=60
Phương pháp tiếp cận được sử dụng bên dưới như sau để giải quyết vấn đề -
-
Bắt đầu vòng lặp từ phần tử thứ 0 của một mảng cho đến khi nó nhỏ hơn n-1.
-
Đối với mỗi lần kiểm tra i + 1 của nó, sản phẩm của mỗi i và i + 1 sẽ in ra kết quả.
Thuật toán
Start Step 1→ Declare function to calculate product of consecutive elements void product(int arr[], int size) Declare int product = 1 Loop For int i = 0 and i < size – 1 and i++ Set product = arr[i] * arr[i + 1] Print product End Step 2 → In main() Declare int arr[] = {2, 4, 6, 8, 10, 12, 14 } Declare int size = sizeof(arr) / sizeof(arr[0]) Call product(arr, size) Stop
Ví dụ
#include <iostream> using namespace std; //functio to find the product of consecutive pairs void product(int arr[], int size){ int product = 1; for (int i = 0; i < size - 1; i++){ product = arr[i] * arr[i + 1]; printf("%d ", product); } } int main(){ int arr[] = {2, 4, 6, 8, 10, 12, 14 }; int size = sizeof(arr) / sizeof(arr[0]); printf("product is : "); product(arr, size); return 0; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
product is : 8 24 48 80 120 168