Java code

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Java code

Message par [Matthieu] » 24 oct. 2017 21:14

Encore moi,

j'aimerais receuillir, si possible, des pistes permettant d'afficher le nombre de chiffre distints d'un entier (exemple dans 14 on en a 2)

Comment pourrais je écrire le code correspondant ?

Messages : 285

Enregistré le : 16 févr. 2017 19:16

Classe : PC*

Re: Java code

Message par Lily1998 » 24 oct. 2017 21:42

En Java je sais pas mais en Python on peut afficher len(str (nombre)), ou bien faire un programme à base de divisions par 10 il me semble.

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Re: Java code

Message par [Matthieu] » 24 oct. 2017 21:59

oui avant on me demandait de calculer le nombre d'éléments dans un entier, j'ai alors utilisé le log en base 10 mais je sais pas si c'est utile pour le deuxième

Messages : 312

Enregistré le : 04 oct. 2017 15:58

Classe : MP

Re: Java code

Message par Errys » 24 oct. 2017 22:12

En java tu peux facilement convertir un entier en chaîne de caractères avec: Integer.toString(number)

Ensuite, la meilleure méthode qui me vient à l'esprit serait d'utiliser un tableau de booléen avec une case par chiffre.

Comme ça, pour chaque chiffre de ta chaîne de caractères, si la case correspondante au chiffre est "vrai" tu fais rien, sinon, (si elle est fausse), tu la passes à "vrai" et tu incrémentes le nombre de chiffre unique par 1.

EDIT: si tu veux de l'aide pour le coder hésite pas.
Lycée Édouard Branly 2015-2018
LLG HX1 2018-2019
LLG MP*3 2019-2020

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Re: Java code

Message par [Matthieu] » 24 oct. 2017 22:19

ah oui je vois,
donc 1 er etape on crée la fonction booléan

puis le tableau avec les valeurs donc on aura un new vu que la taille est infinie

on rentre l'itération avec un for où on met l'intégration et la comparaison entre les deux caractères avec un if

ais je raison ?

Désolé pour le style décousu de mon message

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Re: Java code

Message par [Matthieu] » 24 oct. 2017 22:20

bon je rectifie, je ne pense pas que ce soit cette méthode que le prof veuille que j'utilise, dans le squelette il y a une fonction qui prend des entiers en paramètre

Messages : 312

Enregistré le : 04 oct. 2017 15:58

Classe : MP

Re: Java code

Message par Errys » 24 oct. 2017 22:20

Pour l'utilisation du logarithme en base 10 pour trouver le nombre de chiffre d'un entier, je trouve l'intérêt limité d'un point de vu apprentissage.

Je pense que en te demandant de faire ça, on voulait plutôt t'introduire à la notion de division successive par 10 et le fait que en Java, les divisions sont entières quand tu traites avec des int. Surtout si c'est un devoir...

Après, mon avis vaut ce qu'il vaut, je suis un simple lycéen ^^
Lycée Édouard Branly 2015-2018
LLG HX1 2018-2019
LLG MP*3 2019-2020

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Re: Java code

Message par [Matthieu] » 24 oct. 2017 22:22

c'est une préparation pour le tp de demain que je regarde avant mais je suis d'accord avec toi sinon

Messages : 312

Enregistré le : 04 oct. 2017 15:58

Classe : MP

Re: Java code

Message par Errys » 24 oct. 2017 22:22

Non ce n'est pas ce que je voulais dire.

1- tu convertis ton entier en une chaine de caractère
2- tu initialise un tableau de bool de taille 10 (1 case par chiffre existant donc)
3- pour chaque chiffre de ton nombre, tu vérifies si tu l'as déjà vu grace au tableau de booleen et si tu l'as pas encore vu, tu augmentes de 1 le nombre de chiffre distincts.

Tu peux aussi le faire sans conversion en string avec des divisions successives...
Lycée Édouard Branly 2015-2018
LLG HX1 2018-2019
LLG MP*3 2019-2020

Messages : 64

Enregistré le : 22 juil. 2017 21:15

Classe : l1

Re: Java code

Message par [Matthieu] » 24 oct. 2017 22:39

ok j'ai fait le tableau de bool maintenant il faut que je fasse la 3 eme etape, la plus compliquée.
Vu qu'au final on parle de n entier, comment je sépare chaque chiffre de mon nombre pour voir si ils sont les mêmes ou pas ?

Répondre