给定两个数字A和B ,任务是检查A和B的银比。
Silver Ratio: Two numbers are said to be in silver ratio if the ratio of the sum of the smaller and twice the larger number to the larger number is the same as the ratio of the larger one to the smaller one. Below is the representation of the silver ratio:
for A > 0, B > 0
例子:
Input: A = 2.414, B = 1
Output: Yes
Explanation:
Input: A = 1, B = 0.414
Output No
Explanation: Ratio of A to B do not form a golden ratio
方法:想法是找到两个比率并检查它们是否等于银比率(2.414)。
//这里A代表较大的数字
下面是上述方法的实现:
C++
// C++ implementation to check
// whether two numbers are in
// silver ratio with each other
#include
using namespace std;
// Function to check that two
// numbers are in silver ratio
bool checksilverRatio(float a, float b)
{
// Swapping the numbers such
// that A contains the maximum
// number between these numbers
if(a < b)
swap(a, b);
// First Ratio
float ratio1 = ((a / b) * 1000.0) / 1000.0;
// Second Ratio
float ratio2 = (int)(((2 * a + b) /
a) * 1000);
ratio2 = ratio2 / 1000;
// Condition to check that two
// numbers are in silver ratio
if (ratio1 == ratio2 &&
(int)(ratio1 - 2.414) == 0)
{
cout << "Yes\n";
return true;
}
else
{
cout << "No\n";
return false;
}
}
// Driver Code
int main()
{
float a = 2.414;
float b = 1;
// Function call
checksilverRatio(a, b);
}
// This code is contributed by ishayadav181
Java
// Java implementation to check
// whether two numbers are in
// silver ratio with each other
import java.util.*;
import java.lang.*;
class GFG{
// Function to check that two
// numbers are in silver ratio
static boolean checksilverRatio(double a,
double b)
{
// Swapping the numbers such
// that A contains the maximum
// number between these numbers
if (a < b)
{
a = a + b;
b = a - b;
a = a - b;
}
// First Ratio
double ratio1 = ((a / b) * 1000) / 1000;
// Second Ratio
double ratio2 = (int)(((2 * a + b) /
a) * 1000);
ratio2 = ratio2 / 1000;
// Condition to check that two
// numbers are in silver ratio
if (ratio1 == ratio2 &&
(int)(ratio1 - 2.414) == 0)
{
System.out.println("Yes");
return true;
}
else
{
System.out.println("No");
return false;
}
}
// Driver Code
public static void main(String[] args)
{
double a = 2.414;
double b = 1;
// Function call
checksilverRatio(a, b);
}
}
// This code is contributed by jana_sayantan
Python3
# Python3 implementation to check
# whether two numbers are in
# silver ratio with each other
# Function to check that two
# numbers are in silver ratio
def checksilverRatio(a, b):
# Swapping the numbers such
# that A contains the maximum
# number between these numbers
a, b = max(a, b), min(a, b)
# First Ratio
ratio1 = round(a / b, 3)
# Second Ratio
ratio2 = round((2 * a + b)/a, 3)
# Condition to check that two
# numbers are in silver ratio
if ratio1 == ratio2 and\
ratio1 == 2.414:
print("Yes")
return True
else:
print("No")
return False
# Driver Code
if __name__ == "__main__":
a = 2.414
b = 1
# Function Call
checksilverRatio(a, b)
C#
// C# implementation to check
// whether two numbers are in
// silver ratio with each other
using System;
class GFG{
// Function to check that two
// numbers are in silver ratio
static bool checksilverRatio(double a,
double b)
{
// Swapping the numbers such
// that A contains the maximum
// number between these numbers
if (a < b)
{
a = a + b;
b = a - b;
a = a - b;
}
// First Ratio
double ratio1 = ((a / b) * 1000) / 1000;
// Second Ratio
double ratio2 = (int)(((2 * a + b) /
a) * 1000);
ratio2 = ratio2 / 1000;
// Condition to check that two
// numbers are in silver ratio
if (ratio1 == ratio2 &&
(int)(ratio1 - 2.414) == 0)
{
Console.WriteLine("Yes");
return true;
}
else
{
Console.WriteLine("No");
return false;
}
}
// Driver Code
public static void Main()
{
double a = 2.414;
double b = 1;
// Function call
checksilverRatio(a, b);
}
}
// This code is contributed by sanjoy_62
Javascript
输出:
Yes
参考: https : //en.wikipedia.org/wiki/Silver_ratio