Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนคู่จุดที่สอดคล้องสมการเส้นตรงใน C++


สมการเส้นตรง 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