Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > Помогите разобраться с задачей


Автор: roalang 24.3.2009, 10:50
Дана задача: определите функцию (f a b c), которая равна истине тогда и только тогда, когда из отрезков с длинами a,b и c можно построить треугольник. Не могу сообразить как построить условие. 
Код

(defun f( a b c)
(if (not null f) 
 
а дальше не получается :(

Автор: kosmonaFFFt 24.3.2009, 20:28
Код

(defun f (a b c)
  (< c (+ a b)))

оно?

Автор: VH_ 24.3.2009, 21:24
Код
(defun F (a b c)
  (and
   (< c (+ a b))
   (> c (- a b))))

Автор: adejneka 25.3.2009, 22:37
Теперь моя очередь вспоминать школьную геометрию:
Код

(defun F (a b c)
  (and
   (< c (+ a b))
   (> c (abs (- a b)))))

или так:
Код

(defun F (a b c)
  (and
   (< c (+ a b))
   (< a (+ b c))
   (< b (+ c a))))

Автор: _sg 25.4.2014, 07:14
как вариант:
Код

(defun triangle (a b c)
  (< (abs (- a b)) c (+ a b)))

> (triangle 2 2 3)
T
> (triangle 1 2 3)
NIL
> (triangle 2 1 3)
NIL

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)