ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาจำนวนความผิดปกติในอาร์เรย์ที่กำหนด
ตัวเลขเป็นความผิดปกติในอาร์เรย์ที่กำหนด ถ้าความแตกต่างที่แน่นอนระหว่างตัวเลขกับตัวเลขอื่นๆ ทั้งหมดมากกว่าตัวเลข k ที่กำหนด มาดูตัวอย่างกัน
ป้อนข้อมูล
arr = [3, 1, 5, 7] k = 1
ผลผลิต
4
ความแตกต่างที่แน่นอนระหว่างตัวเลขทั้งหมดกับตัวเลขอื่นมีค่ามากกว่า k
อัลกอริทึม
-
เริ่มต้นอาร์เรย์
-
วนซ้ำบนอาร์เรย์
-
นำองค์ประกอบและวนซ้ำบนอาร์เรย์
-
หาผลต่างสัมบูรณ์ระหว่างตัวเลขทั้งสอง
-
หากไม่มีความแตกต่างที่แน่นอนน้อยกว่าหรือเท่ากับ k กว่าการเพิ่มจำนวนความผิดปกติ
-
-
การนำไปใช้
ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++
#include <bits/stdc++.h> using namespace std; int getAnomaliesCount(int arr[], int n, int k) { int count = 0; for (int i = 0; i < n; i++) { int j; for (j = 0; j < n; j++) { if (i != j && abs(arr[i] - arr[j]) <= k) { break; } } if (j == n) { count++; } } return count; } int main() { int arr[] = {3, 1, 5, 7}, k = 1; int n = 4; cout << getAnomaliesCount(arr, n, k) << endl; return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
4