这里给出的是一个半径为r的圆,它内接一个正方形,该正方形内接一个鲁洛三角形。任务是找到这个鲁洛三角形的最大可能面积。
例子:
Input: r = 6
Output: 50.7434
Input: r = 11
Output: 170.554
方法:从图中可以很明显的看出,如果正方形的边是a ,那么
a√2 = 2r
a = √2r
另外,在鲁洛三角形中, h = a = √2r ,请参考A Square内最大的鲁洛三角形。
所以,鲁洛三角形的面积是, A = 0.70477*h^2 = 0.70477*2*r^2
C++
// C++ Program to find the biggest Reuleaux
// triangle inscribed within in a square which
// in turn is inscribed within a circle
#include
using namespace std;
// Function to find the Area
// of the Reuleaux triangle
float ReuleauxArea(float r)
{
// radius cannot be negative
if (r < 0)
return -1;
// Area of the Reuleaux triangle
float A = 0.70477 * 2 * pow(r, 2);
return A;
}
// Driver code
int main()
{
float r = 6;
cout << ReuleauxArea(r) << endl;
return 0;
}
Java
// Java Program to find the biggest Reuleaux
// triangle inscribed within in a square which
// in turn is inscribed within a circle
import java.util.*;
class GFG
{
// Function to find the Area
// of the Reuleaux triangle
static double ReuleauxArea(double r)
{
// radius cannot be negative
if (r < 0)
return -1;
// Area of the Reuleaux triangle
double A = 0.70477 * 2 * Math.pow(r, 2);
return A;
}
// Driver code
public static void main(String args[])
{
double r = 6;
System.out.println(ReuleauxArea(r));
}
}
// This code is contributed by
// Surendra_Gangwar
Python3
# Python3 Program to find the biggest
# Reuleaux triangle inscribed within
# in a square which in turn is inscribed
# within a circle
import math as mt
# Function to find the Area
# of the Reuleaux triangle
def ReuleauxArea(r):
# radius cannot be negative
if (r < 0):
return -1
# Area of the Reuleaux triangle
A = 0.70477 * 2 * pow(r, 2)
return A
# Driver code
r = 6
print(ReuleauxArea(r))
# This code is contributed by
# Mohit kumar 29
C#
// C# Program to find the biggest Reuleaux
// triangle inscribed within in a square which
// in turn is inscribed within a circle
using System;
class GFG
{
// Function to find the Area
// of the Reuleaux triangle
static double ReuleauxArea(double r)
{
// radius cannot be negative
if (r < 0)
return -1;
// Area of the Reuleaux triangle
double A = 0.70477 * 2 * Math.Pow(r, 2);
return A;
}
// Driver code
public static void Main()
{
double r = 6;
Console.WriteLine(ReuleauxArea(r));
}
}
// This code is contributed by
// shs..
PHP
Javascript
输出:
50.7434
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。