충족되어야 하는 직선 방정식은 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