Есть задача: Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2. Определите, можно ли разместить одну из этих коробок внутри другой, при условии, что поворачивать коробки можно только на 90 градусов вокруг ребер. Формат входных данных Программа получает на вход числа A1, B1, C1, A2, B2, C2. Формат выходных данных Программа должна вывести одну из следующих строчек: Boxes are equal, если коробки одинаковые, The first box is smaller than the second one, если первая коробка может быть положена во вторую, The first box is larger than the second one, если вторая коробка может быть положена в первую, Boxes are incomparable, во всех остальных случаях. Пример вводимых данных: Sample Input 1:1 2 3 3 2 1 Sample Output 1:Boxes are equal Sample Input 2:2 2 3 3 2 1 Sample Output 2:The first box is larger than the second one Так вот, кому не слабо решить без циклов,массивов и каких либо алгоритмов, просто математические операции и условия if else. Такое усложнение заставит подумать и загадить код. Ну что ж, маги C++,вызов принят? Хотя кого я обманываю, никто не захочет заниматься этой по%:?граф%;!)
Ладно, кароч, вот решение, и да, как говорил один чел: я не извращенец, я технологи... Хотя. кажется все-таки извращенец. #include <iostream> int main() { int a1,b1,c1,a2,b2,c2,m; std::cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2; if ((a1==a2 && b1==b2 && c1==c2) || (a1==a2 && b1==c2 && c1==b2) || (a1==b2 && b1==a2 && c1==c2) || (a1==b2 && b1==c2 && c1==a2) || (a1==c2 && b1==b2 && c1==a2) || (a1==c2 && b1==a2 && c1==b2)){ std::cout << "Boxes are equal"; } else if ((a1>=a2 && b1>=b2 && c1>=c2) || (a1>=a2 && b1>=c2 && c1>=b2) || (a1>=b2 && b1>=a2 && c1>=c2) || (a1>=b2 && b1>=c2 && c1>=a2) || (a1>=c2 && b1>=b2 && c1>=a2) || (a1>=c2 && b1>=a2 && c1>=b2)) { std::cout << "The first box is larger than the second one"; } else if ((a1<=a2 && b1<=b2 && c1<=c2) || (a1<=a2 && b1<=c2 && c1<=b2) || (a1<=b2 && b1<=a2 && c1<=c2) || (a1<=b2 && b1<=c2 && c1<=a2) || (a1<=c2 && b1<=b2 && c1<=a2) || (a1<=c2 && b1<=a2 && c1<=b2)) { std::cout << "The first box is smaller than the second one"; } else { std::cout << "Boxes are incomparable"; } return 0; } Код #include <iostream> int main() { int a1,b1,c1,a2,b2,c2,m; std::cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2; if ((a1==a2 && b1==b2 && c1==c2) || (a1==a2 && b1==c2 && c1==b2) || (a1==b2 && b1==a2 && c1==c2) || (a1==b2 && b1==c2 && c1==a2) || (a1==c2 && b1==b2 && c1==a2) || (a1==c2 && b1==a2 && c1==b2)){ std::cout << "Boxes are equal"; } else if ((a1>=a2 && b1>=b2 && c1>=c2) || (a1>=a2 && b1>=c2 && c1>=b2) || (a1>=b2 && b1>=a2 && c1>=c2) || (a1>=b2 && b1>=c2 && c1>=a2) || (a1>=c2 && b1>=b2 && c1>=a2) || (a1>=c2 && b1>=a2 && c1>=b2)) { std::cout << "The first box is larger than the second one"; } else if ((a1<=a2 && b1<=b2 && c1<=c2) || (a1<=a2 && b1<=c2 && c1<=b2) || (a1<=b2 && b1<=a2 && c1<=c2) || (a1<=b2 && b1<=c2 && c1<=a2) || (a1<=c2 && b1<=b2 && c1<=a2) || (a1<=c2 && b1<=a2 && c1<=b2)) { std::cout << "The first box is smaller than the second one"; } else { std::cout << "Boxes are incomparable"; } return 0; }
Кол-во условий "или", равно факториалу кол-ва переменных, было бы ооочень больно, если переменных 4 или даже 5. 4!=24 5!=120