2014-09-12 2 views
-2

я очень застрял на том, чтобы создать функцию пола со следующими ограничениями:Ракетка - создание функции пола при определенных ограничениях

Я только разрешено использовать следующие функции в разделе 1.5 этой страницы: http://docs.racket-lang.org/htdp-langs/beginner.html.

Однако вам не разрешено использовать пол, круглую, потолочную и sgn-функцию. В дополнение ко всему этому вы не можете использовать рекурсию, конд, списки или даже вспомогательные функции.

Примечание: используйте начинающий только студент документации

+0

quotient принимает только два целых числа в качестве параметров. Не реальные числа. –

+0

«Невозможно использовать рекурсию»? Это звучит как один интересный класс Scheme ... – Jack

+0

Сейчас так много ограничений, что я почти уверен, что это невозможно. Я не могу дождаться, чтобы узнать, какой ответ вы отправляете на свой вопрос после своего класса. – Sylwester

ответ

-1

Вот подсказка, чтобы вы начали:

floor(x) = 0   if 0 <=x < 1 
floor(x) = 1+floor(x-1) if x>1 

В схеме обозначения:

(define (myfloor x) 
    (cond 
    [(below-one? x) 0] 
    [else   (add-one (myfloor (subtract-one x)))])) 

Все, что вам нужно сделать, это выяснить, как написать below-one и subtract-one.

+2

Он написал «неспособный использовать рекурсию». – uselpa

+2

Нет рекурсии - это просто глупо. – soegaard

+0

Затем ему нужно будет переписать его, чтобы использовать явный стек :-) – soegaard

Смежные вопросы