给定三个整数a , b和c ,它们表示直线方程a * x + b * y – c = 0的系数。给定两个整数点(x1,y1)和(x2,y2) 。任务是确定点(x1,y1)和(x2,y2)是否位于给定线的同一侧。
例子:
Input : a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 1, y2 = 2
Output : yes
On applying (x1, y1) and (x2, y2) on a * x + b * y – c, gives 1 and 2 respectively both of which have the same sign, hence both the points lie on same side of the line.
Input : a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 0, y2 = 0
Output : no
方法:将两个点都应用到给定的线性方程式上,并检查所获得的值是否属于相同的奇偶校验。
下面是上述方法的实现:
C++
// C++ program to check if two points
// lie on the same side or not
#include
using namespace std;
// Function to check if two points
// lie on the same side or not
bool pointsAreOnSameSideOfLine(int a, int b, int c,
int x1, int y1, int x2, int y2)
{
int fx1; // Variable to store a * x1 + b * y1 - c
int fx2; // Variable to store a * x2 + b * y2 - c
fx1 = a * x1 + b * y1 - c;
fx2 = a * x2 + b * y2 - c;
// If fx1 and fx2 have same sign
if ((fx1 * fx2) > 0)
return true;
return false;
}
// Driver code
int main()
{
int a = 1, b = 1, c = 1;
int x1 = 1, y1 = 1;
int x2 = 2, y2 = 1;
if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
cout << "Yes";
else
cout << "No";
}
Java
// Java program to check if two points
// lie on the same side or not
import java.util.*;
class GFG
{
// Function to check if two points
// lie on the same side or not
static boolean pointsAreOnSameSideOfLine(int a, int b,
int c, int x1,
int y1, int x2,
int y2)
{
int fx1; // Variable to store a * x1 + b * y1 - c
int fx2; // Variable to store a * x2 + b * y2 - c
fx1 = a * x1 + b * y1 - c;
fx2 = a * x2 + b * y2 - c;
// If fx1 and fx2 have same sign
if ((fx1 * fx2) > 0)
return true;
return false;
}
// Driver code
public static void main(String[] args)
{
int a = 1, b = 1, c = 1;
int x1 = 1, y1 = 1;
int x2 = 2, y2 = 1;
if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
System.out.println("Yes");
else
System.out.println("No");
}
}
// This code is contributed by 29AjayKumar
Python3
# Python3 program to check if two points
# lie on the same side or not
# Function to check if two points
# lie on the same side or not
def pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2):
fx1 = 0 # Variable to store a * x1 + b * y1 - c
fx2 = 0 # Variable to store a * x2 + b * y2 - c
fx1 = a * x1 + b * y1 - c
fx2 = a * x2 + b * y2 - c
# If fx1 and fx2 have same sign
if ((fx1 * fx2) > 0):
return True
return False
# Driver code
a, b, c = 1, 1, 1
x1, y1 = 1, 1
x2, y2 = 2, 1
if (pointsAreOnSameSideOfLine(a, b, c,
x1, y1, x2, y2)):
print("Yes")
else:
print("No")
# This code is contributed by Mohit Kumar
C#
// C# program to check if two points
// lie on the same side or not
using System;
class GFG
{
// Function to check if two points
// lie on the same side or not
static bool pointsAreOnSameSideOfLine(int a, int b,
int c, int x1,
int y1, int x2,
int y2)
{
int fx1; // Variable to store a * x1 + b * y1 - c
int fx2; // Variable to store a * x2 + b * y2 - c
fx1 = a * x1 + b * y1 - c;
fx2 = a * x2 + b * y2 - c;
// If fx1 and fx2 have same sign
if ((fx1 * fx2) > 0)
return true;
return false;
}
// Driver code
public static void Main()
{
int a = 1, b = 1, c = 1;
int x1 = 1, y1 = 1;
int x2 = 2, y2 = 1;
if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
Console.WriteLine("Yes");
else
Console.WriteLine("No");
}
}
// This code is contributed by Code_Mech
Javascript
输出:
Yes