给定两个整数r和表示分别Inradius和外接球的长度R,该任务是计算内心和外心之间的距离d。
内半径 正三角形 ( ABC ) 的内半径 ( r ) 是内圆的半径(以 l 为中心),它是适合三角形内部的最大圆。
Circumradius:三角形的外接圆半径(R)是该三角形的外接圆(以O为圆心)的半径。
例子:
Input: r = 2, R = 5
Output: 2.24
Input: r = 5, R = 12
Output: 4.9
方法:
该问题可以使用几何学中的欧拉定理来解决,该定理指出三角形的内心和外心之间的距离可以通过以下公式计算:
下面是上述方法的实现:
C++14
// C++14 program for the above approach
#include
using namespace std;
// Function returns the required distance
double distance(int r, int R)
{
double d = sqrt(pow(R, 2) -
(2 * r * R));
return d;
}
// Driver code
int main()
{
// Length of Inradius
int r = 2;
// Length of Circumradius
int R = 5;
cout << (round(distance(r, R) * 100.0) / 100.0);
}
// This code is contributed by sanjoy_62
Java
// Java program for the above approach
import java.util.*;
class GFG{
// Function returns the required distance
static double distance(int r,int R)
{
double d = Math.sqrt(Math.pow(R, 2) -
(2 * r * R));
return d;
}
// Driver code
public static void main(String[] args)
{
// Length of Inradius
int r = 2;
// Length of Circumradius
int R = 5;
System.out.println(Math.round(
distance(r, R) * 100.0) / 100.0);
}
}
// This code is contributed by offbeat
Python3
# Python3 program for the above approach
import math
# Function returns the required distance
def distance(r,R):
d = math.sqrt( (R**2) - (2 * r * R))
return d
# Driver Code
# Length of Inradius
r = 2
# Length of Circumradius
R = 5
print(round(distance(r,R),2))
C#
// C# program for the above approach
using System;
class GFG{
// Function returns the required distance
static double distance(int r, int R)
{
double d = Math.Sqrt(Math.Pow(R, 2) -
(2 * r * R));
return d;
}
// Driver code
public static void Main(string[] args)
{
// Length of Inradius
int r = 2;
// Length of Circumradius
int R = 5;
Console.Write(Math.Round(
distance(r, R) * 100.0) / 100.0);
}
}
// This code is contributed by rutvik_56
Javascript
输出:
2.24
时间复杂度: O(1)
辅助空间: O(1)
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。