Hcd m n,( ) a min m n,( )←
b max m n,( )←
a mod b a,( ) 0=if
Hcd a b a?,( ) otherwise
:=
5 ( ) 计 算 两 个 整 数 的 最 大 公 约 数,
fib 15( ) 987=fib 8( ) 34=
fib n( ) fib n 1?( ) fib n 2?( )+ n 1>if
1 otherwise
:=
4 ( ) 计 算 菲 波 那 契 数 列 的 项,
C 15 7,( ) 6435=C 6 2,( ) 15=
C n k,( ) nk C n 1? k 1?,( )? k 0≠if
1 otherwise
:=
3 ( ) 计 算 组 合 数,
fac 6( ) 720=
fac n( ) 1 n 0=if
n fac n 1?( )? otherwise
:=
2 ( ) 计 算 阶 乘,
sum 100( ) 5050=
sum n( ) sum n 1?( ) n+ n 1>if
1 otherwise
:=
age 8( ) 44=
age n( ) 30 n 1=if
age n 1?( ) 2+ otherwise
:=
1( ) 计 算 和,
程 序 的 递 归 调 用 实 例,
Mathcad (3) - 编 程 举 例 程 序 的 递 归31 实 验
Hcd 105 855,( ) 15= Hcd 108 804,( ) 12=
6 ( ) 用 有 关 公 式 计 算 pi 的 近 似 值,
A Wallis用 公 式 计 算 pi,的 近 似 值
P n( ) 2
1
n
k
1 1
4 k2? 1?
+
∏=
:= P 900( ) 3.14072059461076=
Pivalue n( ) 2 n 0=if
1 1
4 n2? 1?
+
Pivalue n 1?( )? otherwise
:=
Pivalue 900( ) 3.14072059461076=
B, Machin 用 公 式 计 算 pi 的 近 似 值,
4
1
1000
k
1?( )k 1? 12k 1∑
=
3.14059265383979=
pi n( ) pi n 1?( ) 1?( )n 1? 12 n? 1+ n 1>if
1 otherwise
:=
4 pi 1000( )? 3.14059265383979=
C, 编 一 个 程 序 用 如 下 公 式 计 算 pi 的 近 似 值,
pi
6
1
2
1
2
1
3 33?
+ 1 3?2 4? 1
5 25?
+ 1 3? 5?2 4? 6? 1
7 27?
+,.....+=
d n( ) 12 n 1=if
2n 1?
2n d n 1?( )? otherwise
:=
pi_value k( ) a 12←
a a 1
2 i? 1+( ) 2 2 i? 1+( )?
d i( )?+←
i 1 k..∈for
6 a?
:=
pi_value 17( ) 3.14159265358959=
6 12 12 124?+ 1 3?2 4? 15 32+ 1 3? 5?2 4? 6? 1
7 27?
+
3.14115513392857=
b max m n,( )←
a mod b a,( ) 0=if
Hcd a b a?,( ) otherwise
:=
5 ( ) 计 算 两 个 整 数 的 最 大 公 约 数,
fib 15( ) 987=fib 8( ) 34=
fib n( ) fib n 1?( ) fib n 2?( )+ n 1>if
1 otherwise
:=
4 ( ) 计 算 菲 波 那 契 数 列 的 项,
C 15 7,( ) 6435=C 6 2,( ) 15=
C n k,( ) nk C n 1? k 1?,( )? k 0≠if
1 otherwise
:=
3 ( ) 计 算 组 合 数,
fac 6( ) 720=
fac n( ) 1 n 0=if
n fac n 1?( )? otherwise
:=
2 ( ) 计 算 阶 乘,
sum 100( ) 5050=
sum n( ) sum n 1?( ) n+ n 1>if
1 otherwise
:=
age 8( ) 44=
age n( ) 30 n 1=if
age n 1?( ) 2+ otherwise
:=
1( ) 计 算 和,
程 序 的 递 归 调 用 实 例,
Mathcad (3) - 编 程 举 例 程 序 的 递 归31 实 验
Hcd 105 855,( ) 15= Hcd 108 804,( ) 12=
6 ( ) 用 有 关 公 式 计 算 pi 的 近 似 值,
A Wallis用 公 式 计 算 pi,的 近 似 值
P n( ) 2
1
n
k
1 1
4 k2? 1?
+
∏=
:= P 900( ) 3.14072059461076=
Pivalue n( ) 2 n 0=if
1 1
4 n2? 1?
+
Pivalue n 1?( )? otherwise
:=
Pivalue 900( ) 3.14072059461076=
B, Machin 用 公 式 计 算 pi 的 近 似 值,
4
1
1000
k
1?( )k 1? 12k 1∑
=
3.14059265383979=
pi n( ) pi n 1?( ) 1?( )n 1? 12 n? 1+ n 1>if
1 otherwise
:=
4 pi 1000( )? 3.14059265383979=
C, 编 一 个 程 序 用 如 下 公 式 计 算 pi 的 近 似 值,
pi
6
1
2
1
2
1
3 33?
+ 1 3?2 4? 1
5 25?
+ 1 3? 5?2 4? 6? 1
7 27?
+,.....+=
d n( ) 12 n 1=if
2n 1?
2n d n 1?( )? otherwise
:=
pi_value k( ) a 12←
a a 1
2 i? 1+( ) 2 2 i? 1+( )?
d i( )?+←
i 1 k..∈for
6 a?
:=
pi_value 17( ) 3.14159265358959=
6 12 12 124?+ 1 3?2 4? 15 32+ 1 3? 5?2 4? 6? 1
7 27?
+
3.14115513392857=