Tout d'abord, nous devons comprendre wha La question est la suivante: Il vous demande d'écrire une procédure qui compte le nombre de fois que les chiffres 4, 6 ou 9 apparaissent dans un autre nombre entré. Par exemple, la saisie 10345
doit renvoyer 1
. Voyons pourquoi:
Les chiffres de 10345
sont 1
, 0
, 3
, 4
et 5
. Nous devons demander: «Combien de fois 4
, 6
, ou 9
apparaissent? Eh bien, il n'y a pas 6
ou 9
dans 10345
. Cependant, il y en a un 4
. Par conséquent, la procédure doit renvoyer 1
.
Un autre exemple: (digit-count 14289)
Brisons vers le haut comme nous l'avons fait auparavant.Les chiffres de 14289
sont 1
, 4
, 2
, 8
et 9
. Il n'y a pas de 6
. Il y a, cependant, 1
et 9
. Combien? Il y en a un 1
et un 9
. Comme il y a deux (total) des chiffres désirés présents (les chiffres désirés sont 4
, 6
, et 9
), (digit-count 14289)
devrait renvoyer 2
.
Quelques exemples:
(digit-count 144)
->2
(il y a deux 4
's
(digit-count 1)
->0
(il n'y a pas 4
)' s, 6
's, ou 9
' s)
(digit-count 1262)
->1
(il y a un 6
)
Maintenant, commençons à définir. Nous pouvons tirer parti de la fonction appearances
, qui prend deux entrées et retourne combien de fois la première entrée apparaît dans la seconde. Par exemple: (appearances 'a 'amsterdam)
renvoie 2
car il y a deux a
dans amsterdam
.
En utilisant appearances
, voici notre définition (enfin!):
(define (count469 num)
(+ (appearances 4 num)
(appearances 6 num)
(appearances 9 num)))
Cette fonction retourne la somme des appearances
de 4, le appearances
de 6 et le appearances
de 9. S'il vous plaît ne hésitez pas à répondre avec des commentaires ou des questions!
Cela semble être une excellente question pour votre professeur. Cependant, je pense que vous devez supprimer tous les nombres qui ne sont pas 6, 4 ou 9. Donc, le résultat de l'entrée 61144119 serait 4, 6449. Vous devriez commencer par convertir votre entrée en une chaîne. – linuxuser27
@ linuxuser27 Rien sur le nom «nombre de chiffres» implique que les chiffres doivent être supprimés. Cette question de devoirs peut être faite en utilisant seulement des maths. – erjiang
@erjiang - Je marchais le PO à travers le concept de ce que je pensais que le professeur demandait. Les chiffres dans le nombre qui sont 6, 4, 9. S'il vous plaît dites-moi comment vous feriez cela sans convertir 61144119 en une chaîne ou une liste dans le schéma. Considérant que chaque solution utilise cette approche. – linuxuser27