📜  赛道的长度基于参与者之间的最终距离

📅  最后修改于: 2021-05-13 21:45:41             🧑  作者: Mango

给定三个整数A,BC ,如果三个赛车手参加比赛,其中第一个赛车手以A米击败第二个赛车手,第一个赛车手以B米击败第三个赛车手,则任务是查找赛道的长度第二名选手以C米的成绩击败第三名。

例子:

方法 :
令X为赛道的长度。

情况1:当第一个赛车手完成比赛时,所有3个赛车手所覆盖的距离为:
第一= X,第二= X – A,第三= X – B
让第一名赛车手完成比赛所需的时间为T 1

情况2:当第二名赛车手完成比赛时,其余2名赛车手所覆盖的距离为:
第二= X,第三= X – C
让第二名赛车手完成比赛所需的时间为T 2

在情况1和情况2中,第二和第三赛车的速度之比将是恒定的,这意味着:

下面是上述程序的实现:

C++
// C++ Program for the above approach
  
#include 
using namespace std;
#define int long long
  
int32_t main()
{
    int A = 11;
    int B = 90;
    int C = 80;
  
    int ans = C * A;
    ans = ans / (C + A - B);
  
    cout << ans << endl;
}


Java
// Java Program for the
// above approach
  
import java.util.Scanner;
  
class GFG {
    public static void main(String args[])
    {
        int a = 11;
        int b = 90;
        int c = 80;
  
        System.out.println(c * a
                           / (c + a - b));
    }
}


Python3
# Python3 Program for the 
# above approach 
  
# Function to get the length
# of the race track
def findlength(a, b, c):
    # return the answer
    return c * a/(c + a-b)
  
a = 11
b = 90
c = 80
  
print(findlength(a, b, c))


C#
// C# program for the above approach 
using System;
class GFG{
      
static void Main()
{
    int a = 11; 
    int b = 90; 
    int c = 80; 
          
    Console.WriteLine(c * a / (c + a - b));
}
}
  
// This code is contributed by divyeshrabadiya07


输出:
880

注意:这是在POSTMAN(SDE实习)上询问的面试问题