Как определить принадлежность точки октанту? - C#
Формулировка задачи:
Стоит задача - написать программу для определения принадлежности точки октанту. Октант - это четверть в трехмерном пространстве. Все довольно просто если бы не нужно было написать программу которая будет это делать с помощью всего трех атомарных условий(Условие над которым невозможно произвести дальнейшуюю декомпозицию. Тоесть условие которое больше нельзя разложить. Без логических операторов. ).
Максимум получилось сделать с помощью семи.
Листинг программы
- if (x>0)
- if (y>0)
- if (z>0)
- k = 1;
- else
- k = 8;
- else if (z>0)
- k = 4;
- else
- k = 5;
- else if (y>0)
- if (z>0)
- k = 2;
- else
- k = 7;
- else if (z>0)
- k = 3;
- else
- k = 6;
Решение задачи: «Как определить принадлежность точки октанту?»
textual
Листинг программы
- static int GetOctant(int x, int y, int z)
- {
- var dict = new Dictionary<string, int>()
- {
- {"+++", 1 },
- {"+-+", 2 },
- {"+--", 3 },
- {"++-", 4 },
- {"-++", 5 },
- {"--+", 6 },
- {"---", 7 },
- {"-+-", 8 }
- };
- string xs = "+", ys = "+", zs = "+";
- if (x < 0) xs = "-";
- if (y < 0) ys = "-";
- if (z < 0) zs = "-";
- return dict[xs + ys + zs];
- }
- static void Main(string[] args)
- {
- Console.Write("введите x: ");
- string s = Console.ReadLine();
- int x = Int32.Parse(s);
- Console.Write("введите y: ");
- string s1 = Console.ReadLine();
- int y = Int32.Parse(s1);
- Console.Write("введите z: ");
- string s2 = Console.ReadLine();
- int z = Int32.Parse(s2);
- Console.Write(GetOctant(x, y, z));
- Console.ReadKey();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д