using System.Collections.Generic;
using System.Xml.Serialization;
public static void Main()
var result = calcDegree(h,m);
Console.WriteLine($"degree of {h}:{m} is {result}");
private static double calcDegree(int h, int m)
var degreeEachHour = 360 / 12;
var degreeEachHourWithMinute = (double)degreeEachHour / 60;
var degreeEachMinute = 360 / 60;
var degreeForHour = hour * degreeEachHour;
var degreeForHourWithMinute = degreeEachHourWithMinute * m;
var degreeForMinute = m * degreeEachMinute;
return Math.Abs((degreeForHour + degreeForHourWithMinute) - degreeForMinute);
private static void test()
var testcase = new List<(int, int, double)>() {
for(var i = 0; i < testcase.Count; i++)
Console.WriteLine($"testcase {i}: " + (calcDegree(item.Item1, item.Item2) == item.Item3 ? "pass":"fail"));