在一页上给你三个点 a、b、c。查找是否可以将页面围绕该点旋转一个角度,使得’a’的新位置与’b’的旧位置相同,’b’的新位置与’b’的旧位置相同’C’。如果存在这样的角度,则打印“是”,否则打印“否”。
例子:
Input : a1 = 0, a2 = 1, b1 = 1, b2 = 1,
c1 = 1, c2 = 0
Output : Yes
Explanation : Rotate the page by 90 degree.
Input : a1 = 1, a2 = 1, b1 = 0, b2 = 0,
c1 = 1000, c2 = 1000
Output : No
仅当点“a”和“b”之间的距离等于点“b”和“c”之间的距离时,才能将页面旋转某个角度。但是如果这些点在同一条线上,则在点 ‘b’ 处没有旋转。当 ‘a’, ‘b’, ‘c’ 在同一行或dis(a, b) != dis(b, c)时,问题无解
C++
// C++ program to find if its possible
// to rotate page or not
#include
using namespace std;
// function to find if it's possible
// to rotate page or not
void possibleOrNot(long long a1, long long a2,
long long b1, long long b2,
long long c1, long long c2){
// Calculating distance b/w points
long long dis1 = pow(b1 - a1, 2) +
pow(b2 - a2, 2);
long long dis2 = pow(c1 - b1, 2) +
pow(c2 - b2, 2);
// If distance is not equal
if(dis1 != dis2)
cout << "No";
// If the points are in same line
else if (b1 == ((a1 + c1) / 2.0) && b2 ==
((a2 + c2) / 2.0))
cout << "No";
else
cout << "Yes";
}
// Driver Code
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// Points a, b, and c
long long a1 = 1, a2 = 0, b1 = 2,
b2 = 0, c1 = 3, c2 = 0;
possibleOrNot(a1, a2, b1, b2, c1, c2);
return 0;
}
Java
// java program to find if its possible
// to rotate page or not
import java.util.Arrays;
class GFG {
// function to find if it's possible
// to rotate page or not
static void possibleOrNot(long a1,long a2,
long b1,long b2,
long c1,long c2)
{
// Calculating distance b/w points
long dis1 = (long)Math.pow(b1 - a1, 2) +
(long) Math.pow(b2 - a2, 2);
long dis2 = (long)Math.pow(c1 - b1, 2) +
(long)Math.pow(c2 - b2, 2);
// If distance is not equal
if(dis1 != dis2)
System.out.print("No");
// If the points are in same line
else if (b1 == ((a1 + c1) / 2.0) &&
b2 == ((a2 + c2) / 2.0))
System.out.print("No");
else
System.out.print("Yes");
}
// Driver method
public static void main(String[] args)
{
// Points a, b, and c
long a1 = 1, a2 = 0, b1 = 2,
b2 = 0, c1 = 3, c2 = 0;
possibleOrNot(a1, a2, b1, b2, c1, c2);
}
}
// This code is contributed by Anant Agarwal.
Python3
# Python3 program to fill an
# array with frequencies.
# Function to find if it's possible
# to rotate page or not
def possibleOrNot(a1, a2, b1, b2, c1, c2):
# Calculating distance b/w points
dis1 = (pow(b1 - a1, 2) +
pow(b2 - a2, 2))
dis2 = (pow(c1 - b1, 2) +
pow(c2 - b2, 2))
# If distance is not equal
if(dis1 != dis2):
print("No")
# If the points are in same line
elif (b1 == ((a1 + c1) // 2.0) and
b2 == ((a2 + c2) // 2.0)):
print("No")
else:
print("Yes")
# Driver Code
# Points a, b, and c
a1, b1, c1 = 1, 2, 3
a2 = b2 = c2 = 0
possibleOrNot(a1, a2, b1, b2, c1, c2)
# This code is contributed by Anant Agarwal.
C#
// C# program to fill an array with frequencies.
using System;
class GFG
{
// function to find if it's possible
// to rotate page or not
static void possibleOrNot(long a1,long a2,
long b1,long b2,
long c1,long c2)
{
// Calculating distance b/w points
long dis1 = (long)Math.Pow(b1 - a1, 2) +
(long) Math.Pow(b2 - a2, 2);
long dis2 = (long)Math.Pow(c1 - b1, 2) +
(long)Math.Pow(c2 - b2, 2);
// If distance is not equal
if(dis1 != dis2)
Console.Write("No");
// If the points are in same line
else if (b1 == ((a1 + c1) / 2.0) && b2 ==
((a2 + c2) / 2.0))
Console.Write("No");
else
Console.Write("Yes");
}
// Driver method
public static void Main()
{
// Points a, b, and c
long a1 = 1, a2 = 0, b1 = 2,
b2 = 0, c1 = 3, c2 = 0;
possibleOrNot(a1, a2, b1, b2, c1, c2);
}
}
// This code is contributed by Anant Agarwal.
PHP
Javascript
输出:
No
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。