Scheme 方案理解
我应该编写一个scheme函数(数字计数n),它接受一个正整数n,并计算n的位数,即6、4或9Scheme 方案理解,scheme,Scheme,我应该编写一个scheme函数(数字计数n),它接受一个正整数n,并计算n的位数,即6、4或9 我很难理解我到底应该做什么,我对“n的数字是6、4或9”感到困惑,这是什么意思 这只是一个解释问题,但我想说的是,你可以取一个数字的十进制表示,然后计算出6、4或9的总位数。例如: 100-->0 4-->1 469-->3 444-->3 现在明白了吗?这只是一个解释问题,但我想说的是,你可以取一个数字的十进制表示,然后计算6、4或9的总位数。例如: 100-->0 4-->1 469-->3
我很难理解我到底应该做什么,我对“n的数字是6、4或9”感到困惑,这是什么意思 这只是一个解释问题,但我想说的是,你可以取一个数字的十进制表示,然后计算出6、4或9的总位数。例如:
- 100-->0
- 4-->1
- 469-->3
- 444-->3
现在明白了吗?这只是一个解释问题,但我想说的是,你可以取一个数字的十进制表示,然后计算6、4或9的总位数。例如:
- 100-->0
- 4-->1
- 469-->3
- 444-->3
现在就拿到吗?一种解释-示例:
给定
678799391
,对于4
,1
对于6
,3
对于9
,位数为0
。发生次数之和为0+1+3=4
一种解释-示例:
给定
678799391
,对于4
,1
对于6
,3
对于9
,位数为0
。发生次数之和为0+1+3=4
将整数转换为一个列表,并逐个检查
(define (number->list x)
(string->list (number->string x))
(define (6-4-or-9 x) (cond ((= x 6) true)) ((= x 4) true)) ((= x 9) true))))
(define (count-6-4-9 x) (cond ((6-4-or-9 (car (number->list x)))).......
我相信你会明白这是怎么回事。它相当粗糙,我不确定它是否真的很地道,但它应该能起作用
其思想是将数字转换为列表,检查第一位数字,如果是6、4或9,则递归调用数字列表的cdr上的过程,将其转换回字符串+1…将整个数字转换为列表,并分别检查每个数字
(define (number->list x)
(string->list (number->string x))
(define (6-4-or-9 x) (cond ((= x 6) true)) ((= x 4) true)) ((= x 9) true))))
(define (count-6-4-9 x) (cond ((6-4-or-9 (car (number->list x)))).......
我相信你会明白这是怎么回事。它相当粗糙,我不确定它是否真的很地道,但它应该能起作用
其思想是将数字转换为列表,检查第一位数字,如果是6、4或9,递归调用数字列表cdr上的过程,将其转换回字符串+1…如果不使用列表,则可以使用10的模
%
,并将整数/
除以10
下面是递归解决方案:
(define (digits n)
(if(not (< n 1)) (+ 1 (digits (/ n 10))) 0))
(定义(数字n)
(如果(不是(
如果不使用列表,可以使用10的模运算%
,并将整数/
除以10
下面是递归解决方案:
(define (digits n)
(if(not (< n 1)) (+ 1 (digits (/ n 10))) 0))
(定义(数字n)
(如果(不是(
首先,我们必须理解问题的含义:它要求您编写一个过程,计算数字4、6或9在另一个输入的数字中出现的次数。例如,输入10345
应返回1
。让我们看看原因:
10345
的数字是1
、0
、3
、4
和5
。我们不得不问,“有多少次4
、6
或9
出现了?”嗯,10345
中没有6
或9
。但是,有一个4
。因此,该过程应返回1
另一个例子:(数字计数14289)
让我们像以前一样分手吧。14289
的数字为1
、4
、2
、8
和9
。没有6个。但是,有1
和9
。有多少有一个1
和一个9
。由于存在两个(总计)所需数字(所需数字为4
、6
和9
),(数字计数14289)
应返回2
还有一些例子:
(数字计数144)
-->2
(有两个4
)
(数字计数1)
-->0
(没有4
、6
、或9
)
(数字计数1262)
-->1
(有一个6
)
现在,让我们开始定义。我们可以利用外观
函数,它接受两个输入并返回第一个输入在第二个输入中出现的次数。
例如:(amsterdam的外观'a')
返回2
,因为amsterdam
中有两个a
使用外观
,以下是我们的定义(最后!):
此函数返回4的外观
、6的外观和9的外观之和。请随时回复任何反馈或问题 首先,我们必须理解问题的含义:它要求您编写一个程序,计算数字4、6或9在另一个输入的数字中出现的次数。例如,输入10345
应返回1
。让我们看看原因:
10345
的数字是1
、0
、3
、4
和5
。我们不得不问,“有多少次4
、6
或9
出现了?”嗯,10345
中没有6
或9
。但是,有一个4
。因此,该过程应返回1
另一个例子:(数字计数14289)
让我们像以前一样分手吧。14289
的数字为1
、4
、2
、8
和9
。没有6个。但是,有1
和9
。有多少有一个1