(define (square x)
(* x x))
(define (abs x)
(if (< x 0) (- x) x))
(define (average a b)
(/ (+ a b) 2))
(define (sqrt-iter guess x)
(if (good-enough? guess x) guess
(sqrt-iter (improve guess x) x)))
(define (improve guess x)
(average guess (/ x guess)))
(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.01))
(define (sqrt x)
(sqrt-iter 1.0 x))
Попробуем вызвать функцию sqrt
> (sqrt 4)
2.000609756097561
Как видно из результата, для приближения к более точным результатам необходимо задать большую точность.
C/C++. Arrays. На заметку
#include <stdio.h>
int main() {
int nums[] = {1, 2, 3, 4};
// nums[3] == *(nums + 3) == *(3 + nums) == 3[nums]
printf("%i\n", nums[3]); // 4
printf("%i\n", *(nums + 3)); // 4
printf("%i\n", *(3 + nums)); // 4
printf("%i\n", 3[nums]); // 4
return 0;
}
Subscribe to:
Posts
(
Atom
)