Racket编程;写一个递归函数来计算求和(x^2,x=1.n)



;编写一个递归函数来计算求和(x^2,x=1..n(;您必须编写一个递归函数。;如果您使用任何迭代命令(对于/lop/sum/etc,您将收到一个0(

我被这个卡住了

(define (expo base x)
(cond ((or (= base 1) (= x 0)) 1)
(else (* base (expo base (- x 1)))))

我写了这个,但它不是正确的

您的代码正在工作,但只是在末尾缺少一个括号。当您缺少括号时,您将看到错误expected a ) to close(possible cause: indentation suggests a missing )

如果n等于5。你想看到这个:1^2+2^2+3^2+4^2+5^2=55

#lang racket
(define (summation from-n to-n fn)
(local [(define (aux n)
(if (< n from-n)
0
(+ (fn n) (aux (- n 1)))))]
(aux to-n)))
(define (1^2+2^2+3^2+...+n^2 n)
(summation 1 n sqr))
(define (1+2+3+...+n n)
(summation 1 n identity))
;;; TEST
(1+2+3+...+n 100) ; 5050
(1^2+2^2+3^2+...+n^2 5) ; 55

最新更新