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