Lisp 需要Scheme程序来打印数字的名称
例如:Lisp 需要Scheme程序来打印数字的名称,lisp,scheme,racket,Lisp,Scheme,Racket,例如: 5513345 (电话号码:5513345) (伍佰伍拾壹万叁仟叁佰肆拾伍元) 我真的不知道该怎么做 我试着这么做,结果得到了一系列的案例陈述。该程序将成功打印出10以下整数的名称,但除此之外几乎没有其他功能 (define numname (lambda (n) (if (= n 0) 0 (cond ((= n 9) 'nine) ((= n 8) 'eight) ((=
5513345
(电话号码:5513345)
(伍佰伍拾壹万叁仟叁佰肆拾伍元)
我真的不知道该怎么做
我试着这么做,结果得到了一系列的案例陈述。该程序将成功打印出10以下整数的名称,但除此之外几乎没有其他功能
(define numname
(lambda (n)
(if (= n 0)
0
(cond ((= n 9) 'nine)
((= n 8) 'eight)
((= n 7) 'seven)
((= n 6) 'six)
((= n 5) 'five)
((= n 4) 'four)
((= n 3) 'three)
((= n 2) 'two)
(else 'one)))))
你在正确的轨道上。以你为例:
5513345
这是:
5 513 345
i、 e:
可写为:
five million
five hundred thirteen thousand
three hundred forty five (units)
看到一种模式出现了吗?您的方法适用于10以下的数字(实际上,您可能希望增加到19,因为10到20之间的数字具有特殊名称,而不遵循Xty
约定)
一旦你有了这个,它应该很容易上升到99
一旦你有了这个,它是微不足道的上升到999
一旦你有了这个,把你的数字分成十亿、百万、数千甚至都不管用。。。并再次应用它
快乐编码 这看起来像家庭作业?你能做什么?你能打印出10以下数字的名字吗?把电脑放在一边一分钟,试着写出一个从十进制数到它的书面表示的算法。然后在Scheme中实现该算法。首先感谢您的回复。我试着按照你说的去做,结果得到了一系列的案例陈述。该程序将成功打印出10以下整数的名称,但除此之外几乎没有其他功能。定义numname(lambda(n)(如果)n0(cond(=n9)‘九’(=n8)‘八’(=n7)‘七’(=n6)‘六’(=n5)‘五’(=n4)‘四’(=n3)‘三’(=n2)‘二’(或者‘一’)(你知道吗?你是怎么用手做的?当你需要从1234到1234时,你是怎么做到的?