Строительная организация планирует сооружение домов типа Д1, Д2, Д3 с 1-комнатными, 2-комнатными и 3-комнатными квартирами. Один дом Д1 сосоит из 10 одно-, 50 двух-,35 трехкомнатных квартир. Для домов Д2 и Д3 эти данные соответственно равны 20, 60, 10 и 15, 30, 5. Требуется составить программу строительства так, чтобы суммарные затраты на строительство не превысили 2500 млн.руб. при условии, что сумммарное число одно- и трехкомнатных квартир было не менее 55% от числа двухкомнатных. Известно, что затраты на возведение одного дома Д1, Д2 и Д3 составляют соответственно 700, 400 и 300 млн.руб. Создать отчет по результатам.
a = input("Введите текущую координату фигуры(вертикаль): ")
b = input("Введите текущую координату фигуры(горизонталь): ")
c = input("Введите координату для хода(вертикаль): ")
d = input("Введите координату для хода(горизонталь): ")
# Условие
if (a==c) and (b==c):
#Конец условия
print("Фигура может сделать ход")
else:
print("Фигура НЕ может сделать ход")
Условия:
а) if (a==c) and (b==c): #ладья
б) if abs(a-c) == abs(b-d): #слон
в) if abs(a-c)==1 or abs(b-d)==1: #король
г) if abs(a-c) == abs(b-d) or a == c or b == d: #ферзь
ж) if((abs(abs(a-c)-2)<0.5) and (abs(abs(b-d)-1)<0.5)
or (abs(abs(a-c)-1)<0.5) and (abs(abs(b-d)-2.0)<0.5)): #конь
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).