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