สมการเส้นตรง y = mx + c ให้อาเรย์, m, c หาจำนวนคู่จุด (x, y) ที่สอดคล้อง
ตัวอย่าง:
Input: arr = [1, 2, 3], m = 1, c = 1 Output: 2
คู่ที่สอดคล้อง: (1,2) และ (2,3)
อัลกอริทึม
- กำหนดอาเรย์, m, c
- วนลูป 2 ชั้นหาทุกคู่ (i, j):
- ถ้า i == j ข้าม
- เช็ค arr[j] == m * arr[i] + c
- ถ้าเป็นจริง count++
- คืนค่า count
การเขียนโปรแกรม C++
#include <bits/stdc++.h> using namespace std; bool isSatisfyingLineEquation(int arr[], int i, int j, int m, int c) { if (i == j) return false; return arr[j] == m * arr[i] + c; } int getOrderedPointsPairCount(int arr[], int n, int m, int c) { int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (isSatisfyingLineEquation(arr, i, j, m, c)) count++; } } return count; } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int n = 10; int m = 1, c = 1; cout << getOrderedPointsPairCount(arr, n, m, c) << endl; return 0; }
ผลลัพธ์
9