Можно ли считать список integer без парсинга? - Lisp

Узнай цену своей работы

Формулировка задачи:

Нужно считать два списка интов один двуэлементный, второмй максимум 10^7 элементов. Все числа натуральные, максимальный размер числа 10^9. Нужно найти сумму элементов второго списка и вывести количество цыфр в сумме в определенной вторым элементом первого списка системе исчисления. Есть идея ссумировать все числа, и оставить в списке(втором) только этот атом(сумма) затем перевести его в нужную систему исчисления -> coerce и вывести количество єлементов. Набросал немного.
Листинг программы
  1. (defun split-by-one-space (string)
  2. (loop for i = 0 then (1+ j)
  3. as j = (position #\Space string :start i)
  4. collect (subseq string i j)
  5. while j))
  6. ;;(defun arr-sum () ())
  7. (setf parameters (split-by-one-space(read-line)))
  8. (setf arr (split-by-one-space(read-line)))

Решение задачи: «Можно ли считать список integer без парсинга?»

textual
Листинг программы
  1. (defun numDig (n p)
  2.   (if (< n p) 1 (+ 1 (numDig (\ n p) p))))
  3.  
  4.  
  5. (print (numDig 64 10))

Объяснение кода листинга программы

В коде определена функция с именем numDig, которая принимает два аргумента — n и p. Функция вызывает саму себя (рекурсивно), пока значение n не станет меньше значения p. При каждом вызове функции значение n увеличивается на единицу. При достижении условия n < p, функция возвращает 1. Если же условие не выполняется, то возвращается результат вычисления (numDig (\ n p) p), где n — это результат вычисления функции (numDig (\ n p) p), а p — это значение переменной p. В конце кода вызывается функция numDig с аргументами 64 и 10, и результат её работы выводится на экран с помощью функции print.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы