在此给出一个半径为r的圆,该圆内接一个正方形,该方形又接一个reuleaux三角形。任务是找到该reuleaux三角形的最大可能面积。
例子:
Input: r = 6
Output: 50.7434
Input: r = 11
Output: 170.554
方法:从图中可以很清楚地看到,如果正方形的边是a ,则
a√2 = 2r
a = √2r
此外,在reuleaux三角形中, h = a =√2r ,请参考A Square中的最大Reuleaux三角形。
因此,Reuleaux三角形的面积为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