判断序言中数字是否包含“ 0”的问题

时间:2019-03-25 20:11:14

标签: prolog

实际上,我正在编写代码来判断数字是否包含任何0。函数名称为haveZero。例如,haveZero(109)应该返回true,haveZero(211)应该返回false。这是我编写的代码,但似乎只有基本情况haveZero(0)和其他以“ 0”结尾的数字可以返回true。

enter image description here

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案是使用标准number_codes/2谓词和事实上的标准memberchk/2谓词:

has_zero(Number) :-
    number_codes(Number, Codes),
    memberchk(0'0, Codes).

0'0术语是一种标准的数字符号,使我们能够获取0'前缀之后的字符的代码。

通话示例:

| ?- has_zero(109).
yes

| ?- has_zero(211).
no

答案 1 :(得分:0)

.container-1{ display:flex; flex-direction: column; align-items: center; } .box-1{ flex:1; } .container-2{ display:flex; flex-direction: row; }表示在序言中进行分配。您的代码将(数字mod 10)分配为0,因此只有数字mod 10为0(以0结尾)才可以。