Сегодня мы решим одну не тривиальную задачу и по практикуемся в написании кода. И так пользователь вводит время, конкретно целое число, символизирующие час. Вычислить угол в градусах между часовой и минутной стрелками. Например, 5 часов 150 градусов, 20 часов 120 градусов. Запрещено использовать циклы. Можно было использовать условия if но я ришил упростить код и воспользовался оператором switch. И вот что у меня вышло:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
int i= Int32.Parse(Console.ReadLine()); switch (i) { case 1: Console.WriteLine("30 грудусов"); break; case 2: Console.WriteLine("60 градусов"); break; case 3: Console.WriteLine("90 градусов"); break; case 4: Console.WriteLine("120 грудусов"); break; case 5: Console.WriteLine("150 градусов"); break; case 6: Console.WriteLine("180 градусов"); break; case 7: Console.WriteLine("150 грудусов"); break; case 8: Console.WriteLine("120 грудусов"); break; case 9: Console.WriteLine("90 грудусов"); break; case 10: Console.WriteLine("60 грудусов"); break; case 11: Console.WriteLine("30 грудусов"); break; case 0: Console.WriteLine("0 грудусов"); break; } |
После ввода от 0 до 11 числа в консоль пользователем, программа выведет угол в градусах между часовой и минутной стрелкой.
Код работает от о нуля до 24 часов:
var chas = Convert.ToInt32(Console.ReadLine());
var angle = Math.Abs(chas % 12 * 30 — (chas % 12) / 6 * 360);
Console.WriteLine(«Для » + chas + » часа угол =» + angle);
Я сделал так:
int hours = int.Parse(Console.ReadLine());
int degrees1 = hours * 30 — 360 * ((int)(hours / 12));
int degrees = Math.Abs(360 * (degrees1 / 180) — degrees1);
Console.WriteLine(degrees);