Прямокутник можна скласти лише в тому випадку, якщо числа a, b, c, d можна розбити на попарно рівні. Слід розглянути всі можливі розбивки на пари, а саме:
a = b і c = d;
a = c і b = d;
a = d і b = c;
Задачу також можна вирішити за допомогою сортування. Нехай масив містить чотири заданих натуральних числа. Відсортуємо масив. З цих чисел можна скласти прямокутник тоді і тільки тоді, коли виконується умова m[0] = m[1] і m[2] = m[3].
Реалізація алгоритму
Читаємо вхідні дані.
scanf("%lld %lld %lld %lld", &a, &b, &c, &d);Якщо прямокутник існує, виводимо його периметр.
if ((a == b && c == d) || (a == c && b == d) || (a == d && b == c))
printf("%d\n", a + b + c + d);Інакше виводимо "No".
else
printf("No\n");Реалізація алгоритму – сортування
Оголосимо масив для зберігання вхідних чисел.
int m[4];Читаємо вхідні дані.
scanf("%d %d %d %d", &m[0], &m[1], &m[2], &m[3]);Сортуємо числа.
sort(m, m + 4);Якщо прямокутник існує, виводимо його периметр.
if (m[0] == m[1] && m[2] == m[3])
printf("%d\n", m[0] + m[1] + m[2] + m[3]);Інакше виводимо "No".
else
printf("No\n");Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int c = con.nextInt();
int d = con.nextInt();
if ((a == b && c == d) || (a == c && b == d) ||
(a == d && b == c))
System.out.println(a + b + c + d);
else
System.out.println("No");
con.close();
}
}Python реалізація
Читаємо вхідні дані.
a, b, c, d = map(int, input().split())Якщо прямокутник існує, виводимо його периметр.
if (a == b and c == d) or (a == c and b == d) or (a == d and b == c):
print(a + b + c + d)Інакше виводимо "No".
else:
print("No")