功能是
或
f(n, k) = n * k, if n = k
= n ∗ f(n−1, k), if n > k
= k ∗ f(n, k−1), if n < k
Prolog谓词fn/3
分配以实现上述功能
你能帮我解决一下这个功能吗? 谢谢
答案 0 :(得分:0)
您可以尝试使用以下谓词。
f(N, K, R):-
N = K ,
R is N*K,!.
f(N, K, R):-
N>K,
Nx is N-1,
f(Nx,K,Res),
R is N*Res.
f(N, K, R):-
N<K,
Kx is K-1,
f(N,Kx,Res),
R is K * Res.
R会得到你想要的结果。