我是初学者和初学者的新手。 给定每个立方体的大小由立方体数字表示。例如,total_cube_volume(3,T)将有3个立方体:第一个立方体每边有1英寸,第二个立方体每边有2英寸,第三个立方体每边有3英寸。因此,此问题的总体积为36.
这就是我到目前为止所编写的内容,但是当我询问总数(3,T)时,它会回复否。任何建议都会有帮助。感谢。
total(0,T).
total(N,T):-
N>0,
N1 is N-1,
T1 is N*N*N,
total(N1,T1),
T is T+T1.
答案 0 :(得分:1)
你的递归是错误的。您正在计算T1
,并将其传递给递归的下一个语句。您可能想要做的是将N*N*N
计算到T1中,将一些变量T2
传递到递归total
调用中,然后对这两个值求和。另外,你的基本情况是错误的,你想要总数为0。
total(0,0).
total(N,T):-
N > 0,
N1 is N-1,
T1 is N*N*N,
total(N1,T2),
T is T2+T1.