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

Sự khác biệt tuyệt đối của tất cả các phần tử liên tiếp theo cặp trong một mảng (C ++)?

Trong bài toán này, chúng ta sẽ xem làm thế nào chúng ta có thể nhận được sự khác biệt tuyệt đối giữa các phần tử của mỗi cặp phần tử trong một mảng. Nếu có n phần tử, mảng kết quả sẽ chứa n-1 phần tử. Giả sử các phần tử là {8, 5, 4, 3}. Kết quả sẽ là | 8-5 | =3 thì | 5-4 | =1, | 4-3 | =1.

Thuật toán

pairDiff (arr, n)

begin
   res := an array to hold results
   for i in range 0 to n-2, do
      res[i] := |res[i] – res[i+1]|
   done
end

Ví dụ

#include<iostream>
#include<cmath>
using namespace std;
void pairDiff(int arr[], int res[], int n) {
   for (int i = 0; i < n-1; i++) {
      res[i] = abs(arr[i] - arr[i+1]);
   }
}
main() {
   int arr[] = {14, 20, 25, 15, 16};
   int n = sizeof(arr) / sizeof(arr[0]);
   int res[n-1];
   pairDiff(arr, res, n);
   cout << "The differences array: ";
   for(int i = 0; i<n-1; i++) {
      cout << res[i] << " ";
   }
}

Đầu ra

The differences array: 6 5 10 1