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

Вы можете использовать

List<DataRow> list = new List<DataRow>(dt.Select());

dt.Select(), чтобы возвращать все строки в вашей таблице, как массив datarows, а конструктор List принимает этот массив объектов в качестве аргумента для первоначального заполнения ваш список с.

2
задан Will Ness 19 January 2019 в 10:34
поделиться

1 ответ

Использование помощника просто означает, что вы должны разбить вашу программу на более мелкие части и, возможно, инкапсулировать циклы с дополнительными параметрами в отдельных процедурах - и в схемах циклы часто реализуются через рекурсивные вызовы. Одним (наивным) способом реализации процедуры is_prime будет:

(define (is_prime n)
  (cond ((<= n 1) #f)
        ((= n 2) #t)
        ((= (modulo n 2) 0) #f)
        (else (check 3 n))))

; recursive helper
(define (check i n)
  (cond ((> (* i i) n) #t)
        ((= (modulo n i) 0) #f)
        (else (check (+ i 2) n))))

Существует много способов реализации этой процедуры и множество возможных оптимизаций; вышесказанного должно быть достаточно для начала.

0
ответ дан Óscar López 19 January 2019 в 10:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: