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

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


สมการเส้นตรงที่ควรได้คือ y =mx + c จากอาร์เรย์ m และ c เราต้องหาจำนวนจุดสั่งซื้อที่ตรงกับสมการเส้นตรง มาดูตัวอย่างกัน

ป้อนข้อมูล

arr = [1, 2, 3]
m = 1
c = 1

ผลผลิต

2

คู่ที่เป็นไปตามสมการเส้นตรงคือ

2 1
3 2

อัลกอริทึม

  • เริ่มต้นอาร์เรย์ m และ c
  • เขียนสองลูปเพื่อรับคู่ทั้งหมดจากอาร์เรย์
    • ตรวจสอบว่าทั้งคู่เป็นไปตามสมการเส้นตรงหรือไม่
    • เราตรวจสอบได้ว่าสมการนั้นตรงหรือไม่โดยการแทนค่าลงในสมการเส้นตรง
    • หากทั้งคู่เป็นไปตามสมการเส้นตรง ให้เพิ่มการนับ
  • คืนการนับ

การนำไปใช้

ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน 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