本文介绍了如何在序言中使用递归绘制星形三角形?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此代码用于绘制三角形请谁能解释一下它是如何工作的
this code using to draw triangle please can any one explain how it work
predicates
star(integer).
count(integer,integer).
clauses
star(1):-write('*'),!.
star(X):-X<=0,!.
star(X):-count(1,X),Z=x-1,nl,star(Z),!.
count(X,Y):-X<=Y,write('*'),X1=X+1,count(X1,Y),!.
count(X<Y):-X>Y,!.
此代码绘制 5 颗星 ,4,3,2,1我如何从 1,2,3,4,5 开始
this code draw 5 star ,4,3,2,1how i doing to begin from 1,2,3,4,5
推荐答案
必须绕过上限:
star :- star(0, 5).
star(C, X) :- C < X, count(0, C), C1 is C+1, star(C1, X).
star(C, X) :- C >= X.
count(X, Y) :- X =< Y, write('*'), X1 is X+1, count(X1,Y).
count(X, Y) :- X > Y, nl.
改回运算符以适合您的序言(即 is
变为 =
,>=
变为 =>
等).请注意,削减不是强制性的...请谨慎使用.
Change back operators to fit your prolog (i.e. is
become =
, >=
become =>
, etc).Note that cuts are not mandatory... Use with care.
?- star.
*
**
***
****
*****
这篇关于如何在序言中使用递归绘制星形三角形?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!