Форум программистов, компьютерный форум, киберфорум
Языки JVM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 16
1

Clojure Рекурсивное вычисление суммы четных

22.05.2014, 12:55. Показов 1344. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать рекурсивную функцию от одного числового аргумента N, считавшую сумму чётных натуральных чисел от 1 до N
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2014, 12:55
Ответы с готовыми решениями:

Clojure Рекурсивное вычисление суммы целых от 1 до n
Написать рекурсивную функцию от одного числового аргумента N, считающую сумму ВСЕХ натуральных...

Clojure Как написать эту программу,используя только базис Лиспа, для подсчета суммы четных
Дан список чисел. Определить функцию, возвращающую сумму только чётных элементов.

java 2 рекурсивное вычисление суммы элементов массива
Киньте прогу плиз : рекурсивное вычисление суммы элементов массива Добавлено через 6 минут и...

Рекурсивное вычисление суммы.
Здравствуйте! Помогите пожалуйста. Написать программу, рекурсивно вычисляющую сумму. Найти сумму...

5
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
22.05.2014, 13:30 2
Lisp
1
2
3
4
5
6
7
(defun sum-even (n)
  (cond ((= n 1) 0)
        ((evenp n) (+ n (sum-even (1- n))))
        (t (sum-even (1- n)))))
 
> (sum-even 10)
30
Добавлено через 18 минут
Lisp
1
2
3
4
5
6
7
(defun sum-even (n)
  (cond ((zerop n) 0)
        ((evenp n) (+ n (sum-even (1- n))))
        ((sum-even (1- n)))))
 
> (sum-even 10)
30
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
(defun sum-even (n)
  (if (plusp n)
      (if  (evenp n)
           (+ n (sum-even (1- n)))
           (sum-even (1- n)))
      0))
 
> (sum-even 10)
30
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
(defun sum-even (n)
  (if (plusp n)
      (+ (if (evenp n) n 0) (sum-even (1- n)))
      0))
 
> (sum-even 10)
30
1
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
22.05.2014, 14:00 3
Clojure:
Lisp
1
2
3
4
5
6
7
8
9
(defn task [n]
  (loop [n n acc 0]
    (cond (zero? n) acc
          (even? n) (recur (dec n) (+ acc n))
          :else (recur (dec n) acc))))
;; => #'user/task
 
(task 10)
;; => 30
2
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
22.05.2014, 14:15 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
;;racket
(define (foo1 n)
  (foldl + 0 (range 0 (+ n 1) 2)))
 
(define (foo2 n)
  (let sum-rec ((start 0) (end n) (acc 0))
    (if (> start end) acc (sum-rec (+ start 2) end (+ acc start)))))
 
(define n 15)
 
(define (main)
  (displayln (foo1 n))
  (displayln (foo1 n))
  (displayln "Have fun!"))
 
(main)
 
>
56
56
Have fun!
>
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
22.05.2014, 14:40 5
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(defun sum-even (n)
  (cond ((oddp n) (sum-even (- n 1)))
        ((zerop n) 0)
        (t (+ n (sum-even (- n 2))))))
 
==> sum-even
 
(sum-even 10)
 
==> 30
 
(sum-even 9)
 
==> 20
 
(sum-even 3)
 
==> 2
Добавлено через 52 секунды
_sg, лишние вызовы... Вычитать нужно по 2.

Добавлено через 2 минуты
Хотя и у меня на каждом вызове лишнее обращение к oddp.
0
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
22.05.2014, 15:22 6
Цитата Сообщение от Catstail Посмотреть сообщение
Хотя и у меня на каждом вызове лишнее обращение к oddp.
Заводим локальную переменную, в которую загоняем модификацию n в зависимости от четности.
0
22.05.2014, 15:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2014, 15:22
Помогаю со студенческими работами здесь

Рекурсивное вычисление суммы
Напишите рекурсивную подпрограмму , которая вычисляет сумму S=1+3+5+...+(2n-1) .

Рекурсивное вычисление суммы
3. Составьте программу вычисления суммы: X x2 x3 xn 1 + --- +...

Рекурсивное вычисление суммы ряда
Вычислить сумму 1+\frac{x^1}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+...+\frac{x^n}{n!} Не могу...

Рекурсивное вычисление суммы ряда
Нужно написать программу с помощью рекурсии для вычисления суммы ряда 1+2^2+3^2+...+n^2 Число n...

Рекурсивное вычисление суммы ряда
Помогите написать программу с рекурсией в паскале , используя рекурсивную функцию (с циклом я сам...

Рекурсивное вычисление суммы ряда
Всем добрый день, не могу понять как составить рекурсивную функцию (с циклом получилось, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru