2013-04-28 81 views
1

我在序言和遞歸一般新。 由於每個立方體的大小由立方體數表示。例如,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. 

回答

1

您的遞歸是錯誤的。你正在計算T1,並將它傳遞給遞歸下一個語句。你可能想要做的是將T計算成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. 
+0

ahh非常感謝您的解釋 – user2060185 2013-04-28 15:51:34