英文数字单词、一筐鸡蛋的问题

转载自:https://mp.weixin.qq.com/s/Drd-HeLIRTZY25rsrbLsXA

英文数字单词

在财务文档(如支票)上,有时必须用全文字写数字。示例:175必须写成one-seven-five。编写谓词full_words / 1以全字显示(非负)整数。

 

程序文件名: p7_05.pl

% full_words(N) :- print the number N in full words (English)

% (non-negative integer) (+)

 

full_words(0) :- 

!, 

write(zero), 

nl.

full_words(N) :- 

integer(N), 

N > 0

full_words1(N), 

nl.

 

full_words1(0) :- !.

full_words1(N) :- 

N > 0,

Q is N // 10

R is N mod 10,

full_words1(Q), 

numberword(R,RW), 

hyphen(Q), 

write(RW).

 

hyphen(0) :- !.

hyphen(Q) :- 

Q > 0

write('-'). 

 

numberword(0,zero).

numberword(1,one).

numberword(2,two).

numberword(3,three).

numberword(4,four).

numberword(5,five).

numberword(6,six).

numberword(7,seven).

numberword(8,eight).

numberword(9,nine).

 

测试:

?- consult('p7_05.pl').

true.

 

?- full_words(65309).

six-five-three-zero-nine

true.

 

?- 

 

 

 

一筐鸡蛋的问题:

1个1个拿,正好拿完。

2个2个拿,还剩1个。

3个3个拿,正好拿完。

4个4个拿,还剩1个。

5个5个拿,还差1个。

6个6个拿,还剩3个。

7个7个拿,正好拿完。

8个8个拿,还剩1个。

9个9个拿,正好拿完。

 

问筐里最少有多少鸡蛋?

 

:- use_module(library(clpfd)).

num(X,S0,S1):-

        X in S0..S1, %给定变量X的范围

        Y2 #= X mod 2,Y2 #= 1,

        Y3 #= X mod 3,Y3 #= 0,

        Y4 #= X mod 4,Y4 #= 1,

        Y5 #= X mod 5,Y5 #= 4,

        Y6 #= X mod 6,Y6 #= 3,

        Y7 #= X mod 7,Y7 #= 0,

        Y8 #= X mod 8,Y8 #= 1,

        Y9 #= X mod 9,Y9 #= 0,

        label([X]), %参看数独

        write(X).

 

?- num(X,0,10000).

1449

X = 1449 ;

3969

X = 3969 ;

6489

X = 6489 ;

9009

X = 9009.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值