Вложенность коробок - C (СИ)
Формулировка задачи:
На столе лежат две коробки размерами A1xB1xC1 и A2xB2xC2. Выяснить, возможно ли одну из этих коробок поставить в другую, если разрешено повороты коробок через любое ребро на угол 90 градусов.
Входные данные
С клавиатуры вводятся целые числа A1, B1, C1 и A2, B2, C2. Все числа натуральные и не больше 1000.
Выходные данные
На экран выводится одно число:
- 0 - если коробки равные,
- 1 - если вторую нужно поместить в первую,
- 2 - если первую нужно поместить во вторую,
- -1 - иначе
#include <stdio.h> #include <stdlib.h> int variants[6][3]; int main() { int a1, b1 ,c1; int a2, b2, c2; int temp, out, i; out = 100; scanf("%d %d %d", &a1, &b1, &c1); scanf("%d %d %d", &a2, &b2, &c2); temp = (a1+b1+c1) - (a2+b2+c2); if(temp > 0) out = 1; if(temp < 0) out = 2; if(a1 == a2 && b1 == b2 && c1 == c2) { out = 0; } if(out == 100) { out = -1; fill(a1, b1, c1); for(i = 1; i < 4; i++) { if(variants[i][1] == a2 && variants[i][2] == b2 && variants[i][3] == c2) { out = 0; break; } } } printf("%d", out); return 0; } void fill(a, b, c) { variants[1][1] = b; variants[1][2] = a; variants[1][3] = c; variants[2][1] = c; variants[2][2] = a; variants[2][3] = b; variants[3][1] = c; variants[3][2] = b; variants[3][3] = a; }
Решение проходит не все проверочные тесты, что может быть упущено?
Решение задачи: «Вложенность коробок»
textual
Листинг программы
temp = (a1+b1+c1) - (a2+b2+c2); if(temp > 0) out = 1; if(temp < 0) out = 2;
Объяснение кода листинга программы
- Сначала происходит вычисление суммы трех слагаемых: a1 + b1 + c1.
- Затем происходит вычисление суммы трех других слагаемых: a2 + b2 + c2.
- Разность между полученными суммами сохраняется в переменной temp.
- Далее происходит проверка значения переменной temp.
- Если temp больше нуля, то значение переменной out устанавливается равным 1.
- Если temp меньше нуля, то значение переменной out устанавливается равным 2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д