zoukankan      html  css  js  c++  java
  • SICP习题 1.2.4 (求幂)

    (define (expte b n)
    (if (= n 0)
    1
    (* b (expte b (- n 1)))))

    ;(expte 2 200000)
    ;(expt 2 200000)

    (define (expta b n)
    (expta-iter b n 1))

    (define (expta-iter b counter product)
    (if (= counter 0)
    product
    (expta-iter b
    (- counter 1)
    (* b product))))
    ;(expta 2 200000)

    (define (fast-expt b n)
    (cond ((= n 0) 1)
    ((evena? n) (square (fast-expt b (/ n 2))))
    (else (* b (fast-expt b (- n 1))))))

    (define (evena? n)
    (= (remainder n 2) 0))

    (define (square x)
    (* x x))

    (fast-expt 2 200000)
    ;(remainder 4 3) ;求余

    我用的R5RS和书上的MIT-Scheme有些许不同.

    我的自带expt函数.经检验这个函数应该是用的第三种方法实现的.

    不自带square函数,这是个自乘函数.

    自带even?函数 为偶返回true

  • 相关阅读:
    python迭代器
    初识html
    跨域(jsonp)方法
    闭包
    pycharm软件配置
    插槽slot
    git常用操作
    在mac中使用Charles抓包操作
    防止网页被嵌入框架
    H5唤起APP
  • 原文地址:https://www.cnblogs.com/R4mble/p/7882689.html
Copyright © 2011-2022 走看看