我下面的代码旨在按顺序生成自然数的平方
(即sq(X). -> X=0; X=1; X=4; X=9; X=16; ...
)
nat(0).
nat(X) :- nat(Y), Z is Y+1, X is Z*Z.
但我得到的答案是:
1
0 ?- nat(X).
X = 0 ;
X = 1 ;
X = 4 ;
X = 25 ;
X = 676
应该是一个快速的解决方案,但我在这方面花费的时间比我想说的要长。任何帮助是极大的赞赏!
我下面的代码旨在按顺序生成自然数的平方
(即sq(X). -> X=0; X=1; X=4; X=9; X=16; ...
)
nat(0).
nat(X) :- nat(Y), Z is Y+1, X is Z*Z.
但我得到的答案是:
1
0 ?- nat(X).
X = 0 ;
X = 1 ;
X = 4 ;
X = 25 ;
X = 676
应该是一个快速的解决方案,但我在这方面花费的时间比我想说的要长。任何帮助是极大的赞赏!