【发布时间】:2013-03-04 19:18:33
【问题描述】:
我想使用 Prolog 程序找到一个系列的总和。为此,我编写了以下程序:
pow(N,1,R):- R is N.
pow(N,M,R):- X is M-1,pow(N,X,R1),R is R1*N.
sum(N,1,R) :- R is N+1 .
sum(N,M,R) :- X is M-1, X>1,sum(N,X,R1),pow(N,M,R2), R is (R1+R2).
我想找到以下系列的总和:
1+n+n^2+n^3+..................+n^m
我相信上面的代码是正确的。但是当我运行程序时,它显示输出 "No" 。为什么 ?我已经尝试了很多,但无法获得预期的输出。
【问题讨论】:
-
你能分享一下你是如何调用 sum 谓词的吗?
-
我用 sum(2,7,R) 调用 sum 谓词。答案应该是 255 ,但令人惊讶的是输出是“否”。
标签: prolog exponentiation