There are two thermometers and given five integers **F1**, **B1**, **F2**, **B2** and **T**, where **F1** and **B1** are the Freezing point and Boiling Point of water on **thermometer 1**, and **F2** and **B2** are the Freezing point and Boiling Point of water on **thermometer 2** respectively, and **T** is some temperature recorded on thermometer **1**. The task is to find the temperature on the thermometer **2**.

**Example:**

Input:F1 = 0, B1 = 10, F2 = 100, B2 = 200, T = 4Output:140.00

Input:F1 = 0, B1 = 100, F2 = 32, B2 = 212, T = 37Output:98.60

**Approach: **Consider the first thermometer to use **U1** unit system and second thermometer using **U2** unit system.

- The idea is to get the difference between the boiling and freezing point of water on each thermometer.
- The number of units between the freezing and boiling points of both thermometers shows the same temperature difference.

So,

(B1 – F1) U1 == (B2 – F2) U2

By Unitary method, U1 = ( B2 – F2 ) / ( B1 – F1 ) U2

Relative value ofU2isT – F1andU1isT – F2

Hence, T = F2 + ( ( B2 – F2 ) / ( B1 – F1 ) ) * ( T – F1 )

Below is the implementation of the above approach:

## C

`// C program for above approach` `#include <stdio.h>` `// Function to return temperature` `// in the second thermometer` `double` `temp_convert(` `int` `F1, ` `int` `B1, ` `int` `F2,` ` ` `int` `B2, ` `int` `T)` `{` ` ` `float` `t2;` ` ` `// Calculate the temperature` ` ` `t2 = F2` ` ` `+ (` `float` `)(B2 - F2)` ` ` `/ (B1 - F1) * (T - F1);` ` ` `return` `t2;` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `F1 = 0, B1 = 100;` ` ` `int` `F2 = 32, B2 = 212;` ` ` `int` `T = 37;` ` ` `float` `t2;` ` ` `printf` `(` `"%.2f"` `,` ` ` `temp_convert(F1, B1, F2, B2, T));` ` ` `return` `0;` `}` |

## Java

`// Java program for above approach` `import` `java.io.*;` `class` `GFG{` `// Function to return temperature` `// in the second thermometer` `static` `double` `temp_convert(` `int` `F1, ` `int` `B1, ` `int` `F2,` ` ` `int` `B2, ` `int` `T)` `{` ` ` `float` `t2;` ` ` `// Calculate the temperature` ` ` `t2 = F2 + (` `float` `)(B2 - F2) /` ` ` `(B1 - F1) *` ` ` `(T - F1);` ` ` `return` `t2;` `}` `// Driver Code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `F1 = ` `0` `, B1 = ` `100` `;` ` ` `int` `F2 = ` `32` `, B2 = ` `212` `;` ` ` `int` `T = ` `37` `;` ` ` `float` `t2;` ` ` `System.out.printf(` `"%.2f"` `,` ` ` `temp_convert(F1, B1, F2, B2, T));` `}` `}` `// This code is contributed by rishavmahato348` |

**Output:**

98.60

**Time Complexity:** O(1) **Auxiliary Space:** O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**