We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 541bc60 commit d1deed3Copy full SHA for d1deed3
2 files changed
README.org
@@ -25,7 +25,7 @@
25
习题完成情况:
26
- 章节一: 43/46
27
- 章节二: 88/97
28
- - 章节三: 57/82
+ - 章节三: 58/82
29
- 章节四: TODO
30
- 章节五: TODO
31
* 运行
chapter3/exercise3-58.rkt
@@ -0,0 +1,20 @@
1
+#lang racket
2
+(require "stream.rkt")
3
+
4
+;;; 实际上实现了一个流式长除法算法, 用于将分数num/den转换为以radix为基数的无限小数表示
5
+(define (expand num den radix)
6
+ (cons-stream
7
+ (quotient (* num radix) den)
8
+ (expand (remainder (* num radix) den) den radix)))
9
10
+(module+ test
11
+ (require rackunit)
12
13
+ (test-case "Test for expand"
14
+ (define x (expand 3 8 10))
15
+ ;; 3/8 = 0.375 (有限小数)
16
+ (check-equal? (stream-to-list x 10) '(3 7 5 0 0 0 0 0 0 0))
17
18
+ (define s (expand 1 7 10))
19
+ ;; (expand 1 7 10) 对应 1/7 = 0.142857142857... (循环小数)
20
+ (check-equal? (stream-to-list s 10) '(1 4 2 8 5 7 1 4 2 8))))
0 commit comments