Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Деление чисел без функции деления 
:(
    Опции темы
Mars30
Дата 6.5.2014, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.5.2014

Репутация: нет
Всего: нет



Нужно написать функцию (divis x y), которая возвращает частное и остаток от деления x на y. Не использовать функцию деления. Нашла, что для вычисления остатка можно использовать умножения на магическое число, но я не нашла, что это значит. А насчет частного я нашла статейку по assembler, правда я его не знаю. Вот ссылка на статью http://www.manhunter.ru/assembler/665_zame...assemblere.html
PM MAIL   Вверх
VH_
Дата 9.5.2014, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



Код

(defun F (X Y)
 (cond
  ((zerop Y) nil)
  ((zerop X) (list 0 0))
  ((< X Y) (list 0 X))
  (T (mapcar '+ (list 1 0) (F (- X Y) Y)))))

PM MAIL   Вверх
k0rvin
Дата 10.5.2014, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Код

(defun div (x y &optional (num 0))
  (cond ((= y 0) (values nil nil))
        ((< x y) (values num x))
        (t       (div (- x y) y (1+ num)))))


Добавлено через 6 минут и 24 секунды
Код

(defun div (x y)
  (unless (zerop y)
    (do ((num 0 (1+ num))
         (rem x (- rem y)))
        ((< rem y) (values num rem)))))



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
_sg
Дата 10.5.2014, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 16.5.2007

Репутация: 2
Всего: 2



Код

(defun quotient-remainder (a b &optional (n 0))
  (if (zerop b)
      'division-by-zero
      (if (< a b)
          (values n a)
          (quotient-remainder (- a b) b (1+ n)))))

> (quotient-remainder 10 3)
3
1

Код

(defun quotient-remainder (a b &optional (n 0))
  (cond ((zerop b) 'division-by-zero)
        ((< a b) (list n a))
        ((quotient-remainder (- a b) b (1+ n)))))

> (quotient-remainder 10 3)
(3 1)

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
Mars30
Дата 11.5.2014, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.5.2014

Репутация: нет
Всего: нет



Всем спасибо за решения smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.1338 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.