Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474427
  • 博文数量: 65
  • 博客积分: 2645
  • 博客等级: 少校
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-08 17:04
文章分类

全部博文(65)

文章存档

2010年(5)

2009年(5)

2008年(14)

2007年(35)

2006年(6)

分类:

2006-01-09 17:09:39

;;;求最大公约数gcd(a,b)
;;; 用scheme实现
;;;(gcd 9 12) => (gcd 12 9) => (gcd 9 3) => (gcd 3 0) => 3
(define (gcd a b)
    (if(= b 0)
           a
           (gcd b (mod a b))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; // a, b >= 0
;;; Type gcd ( Type a, Type b)
;;; {  if ( b == 0)
;;;        return a;
;;;    else
;;;        gcd ( b, a % b); 
;;;  }
;;;
;;;// a, b 的最小公倍数 = ( a * b ) / gcd ( a, b )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
附:
1. mod 的定義:
(define ( mod x y )
      (if ( < x y )
           x
           ( mod (- x y) y )))
2. 運行示意圖
阅读(1754) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~