From 424dcc0cdb7c089ee599dfe07337e026829c6831 Mon Sep 17 00:00:00 2001 From: hudazaan Date: Mon, 6 Oct 2025 00:29:12 +0530 Subject: [PATCH] Add solution for Challenge 18 by hudazaan --- .../submissions/hudazaan/solution-template.go | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 challenge-18/submissions/hudazaan/solution-template.go diff --git a/challenge-18/submissions/hudazaan/solution-template.go b/challenge-18/submissions/hudazaan/solution-template.go new file mode 100644 index 00000000..61db4b36 --- /dev/null +++ b/challenge-18/submissions/hudazaan/solution-template.go @@ -0,0 +1,37 @@ +package main + +import ( + "fmt" + "math" +) + +func main() { + // Example usage + celsius := 25.0 + fahrenheit := CelsiusToFahrenheit(celsius) + fmt.Printf("%.2f°C is equal to %.2f°F\n", celsius, fahrenheit) + + fahrenheit = 68.0 + celsius = FahrenheitToCelsius(fahrenheit) + fmt.Printf("%.2f°F is equal to %.2f°C\n", fahrenheit, celsius) +} + +// CelsiusToFahrenheit converts a temperature from Celsius to Fahrenheit +// Formula: F = C × 9/5 + 32 +func CelsiusToFahrenheit(celsius float64) float64 { + fahrenheit := celsius*9/5 + 32 + return Round(fahrenheit, 2) +} + +// FahrenheitToCelsius converts a temperature from Fahrenheit to Celsius +// Formula: C = (F - 32) × 5/9 +func FahrenheitToCelsius(fahrenheit float64) float64 { + celsius := (fahrenheit - 32) * 5 / 9 + return Round(celsius, 2) +} + +// Round rounds a float64 value to the specified number of decimal places +func Round(value float64, decimals int) float64 { + precision := math.Pow10(decimals) + return math.Round(value*precision) / precision +} \ No newline at end of file