定义一个谓词,通过递归地从分钟数减去60并递增小时数,将分钟数转换为相应的小时和分钟。使用该规则的一个示例是:
?- mins_to_hours_and_mins(124, H, M).
H=2 M=4
答案 0 :(得分:-5)
尝试这个:)主要思想是通过从总时间减去60来累积谓词min中的小时数,当总时间低于60时,我们可以统计累计器的计数小时数与H变量和剩余时间用M变量。
minutes(X,H,M):- %main predicate
min(X,0,H,M).
min(X,H,ResultH,ResultM):- %ending condition of recursion
X<60,
ResultH is H, %unification with counted hours
ResultM is X.
min(X,H,ResultM,ResultH):- %recursive predicate
X >= 60,
X2 is X-60, H2 is H+1, %subtracting from total time
min(X2,H2,ResultM,ResultH).