ที่นี่เราจะมาดูกันว่าเราจะได้รับความแตกต่างแน่นอนขององค์ประกอบคี่และแม้กระทั่งดัชนีในอาร์เรย์ ค่าความต่างสัมบูรณ์บ่งชี้ว่าหากผลต่างของคู่หนึ่งเป็นค่าลบ ค่าสัมบูรณ์จะถูกนำมาพิจารณา ตัวอย่างเช่น ให้ตัวเลขคือ {1, 2, 3, 4, 5, 6, 7, 8, 9} ดังนั้นองค์ประกอบตำแหน่งคู่คือ 1, 3, 5, 7, 9 (เริ่มจาก 0) และองค์ประกอบตำแหน่งคี่คือ 2, 4, 6, 8 ดังนั้นความแตกต่างสำหรับข้อมูลที่วางคู่คือ |1 - 3| =2 แล้ว |2 - 5| =3, |3 - 7| =4 และ |4 - 9| =5 ในทำนองเดียวกัน ผลต่างของเลขคี่จะเท่ากับ 4
อัลกอริทึม
offEvenDiff(arr, n)
begin even := 0 odd := 0 for i := 0 to n-1, do if i is even, then even := |even – arr[i]| else odd := |odd – arr[i]| done return (odd,even) end
ตัวอย่าง
#include<iostream> #include<cmath> using namespace std; void oddEvenDiff(int arr[], int n, int &o, int &e) { int even = 0; int odd = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0) { even = abs(even - arr[i]); //get the even difference } else { odd = abs(odd - arr[i]); } } e = even; o = odd; } main() { int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int n = sizeof(arr) / sizeof(arr[0]); int odd, even; oddEvenDiff(arr, n, odd, even); cout << "The odd and even differences are: " << odd << " and " << even; }
ผลลัพธ์
The odd and even differences are: 4 and 5