Exercice de débutante
Perfectina
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis totalement débutante, c'est ma première année d'informatique.
Je cherche à coder une fonction qui prendrait en argument un entier n et retournerait le nombre de chiffre qu'il y a dans n.
Par exemple si n=1999, la fonction retourne 4.
Si n=300, la fonction retourne 3.
Pour commencer j'ai fait :
public static int nombreDeChiffres (int n) {
int s=0;
if (n>=0 && n<10) {
s=1;
} else if (n>=10 && n<100) {
s=2;
} else if (n>=100 && n<1000) {
s=3;
} else if (n>=1000 && n<10000) {
s=4;
}
On pourrait continuer longtemps ainsi. A mon avis il faudrait plutôt une formule générale. Et je suis bloquée... Je remarque simplement que lorsqu'on multiplie n par 10, s augmente de 1.
Ex : Si n=1...
n*10 implique s=1
n*10*10 implique s=2
n*10*10*10 implique s=3
etc
Comment pourrais-je m'y prendre ? Faut-il utiliser une boucle for ?
Je suis totalement débutante, c'est ma première année d'informatique.
Je cherche à coder une fonction qui prendrait en argument un entier n et retournerait le nombre de chiffre qu'il y a dans n.
Par exemple si n=1999, la fonction retourne 4.
Si n=300, la fonction retourne 3.
Pour commencer j'ai fait :
public static int nombreDeChiffres (int n) {
int s=0;
if (n>=0 && n<10) {
s=1;
} else if (n>=10 && n<100) {
s=2;
} else if (n>=100 && n<1000) {
s=3;
} else if (n>=1000 && n<10000) {
s=4;
}
On pourrait continuer longtemps ainsi. A mon avis il faudrait plutôt une formule générale. Et je suis bloquée... Je remarque simplement que lorsqu'on multiplie n par 10, s augmente de 1.
Ex : Si n=1...
n*10 implique s=1
n*10*10 implique s=2
n*10*10*10 implique s=3
etc
Comment pourrais-je m'y prendre ? Faut-il utiliser une boucle for ?
A voir également:
- Exercice de débutante
- Logiciel de programmation pour débutant - Guide
- Debut logiciel de capture video - Télécharger - TV & Vidéo
- Transmath 3eme exercice - Forum Loisirs / Divertissements
- Fleur d'encre 5eme corrigé exercice ✓ - Forum PDF
- Déplacez les 3 premières diapositives de la 4e ligne au début de la présentation. - Forum Powerpoint
4 réponses
Tiens encore des devoirs à faire?
Qui s'y colle?
Anti Micr$, Google, anti Yahoo, anti "faces de ploucs", "Tuiteur", "Skailpe", Hotmail, Gmail, smarfaune, ail-faune et consorts...
Militant pour un Internet libre sans flicages! Sauvons notre liberté..
Qui s'y colle?
Anti Micr$, Google, anti Yahoo, anti "faces de ploucs", "Tuiteur", "Skailpe", Hotmail, Gmail, smarfaune, ail-faune et consorts...
Militant pour un Internet libre sans flicages! Sauvons notre liberté..
Oups je me suis trompée.
Je voulais dire que
Si n=1... s=1
n*10 implique s=2
n*10*10 implique s=3
n*10*10*10 implique s=4
Je voulais dire que
Si n=1... s=1
n*10 implique s=2
n*10*10 implique s=3
n*10*10*10 implique s=4
Merci !
J'ai du coup essayé de coder cette fonction, mais étant donné que je n'ai pas la possibilité de vérifier moi-même, pouvez-vous me dire si elle fonctionne et si elle répond à la fonction recherchée ?
Lorsque j'essaye de choisir un nombre, par exemple n=9999, ça fait bien :
s=0 et i=1 (initialisation des variables)
s=1 et i=10 (on continue...)
s=2 et i=100 (...)
s=3 et i=1000 (...)
s=4 et i=10000 (ah, i devient supérieur à n).
et elle retourne donc 4.
Si on prend n=10000, s ira bien jusqu'à 5 !
Est-ce juste ?
(Je tiens juste à préciser que lorsque j'ouvre un topic, c'est dans le but de progresser, de valider mon examen en recevant de l'aide de la part de personnes qui veulent bien consacrer de leur temps (et que je remercie), et aucunement dans le but qu'on me fasse mes "devoirs", d'autant plus que ces exos ne sont pas demandés, c'est simplement moi qui me les donne pour m'entraîner et me préparer le mieux possible).
J'ai du coup essayé de coder cette fonction, mais étant donné que je n'ai pas la possibilité de vérifier moi-même, pouvez-vous me dire si elle fonctionne et si elle répond à la fonction recherchée ?
public static int nbDeChiffre (int n) { int s=0; int i=1; while (i<=n) { s=s+1; i=i*10; } return s; }
Lorsque j'essaye de choisir un nombre, par exemple n=9999, ça fait bien :
s=0 et i=1 (initialisation des variables)
s=1 et i=10 (on continue...)
s=2 et i=100 (...)
s=3 et i=1000 (...)
s=4 et i=10000 (ah, i devient supérieur à n).
et elle retourne donc 4.
Si on prend n=10000, s ira bien jusqu'à 5 !
Est-ce juste ?
(Je tiens juste à préciser que lorsque j'ouvre un topic, c'est dans le but de progresser, de valider mon examen en recevant de l'aide de la part de personnes qui veulent bien consacrer de leur temps (et que je remercie), et aucunement dans le but qu'on me fasse mes "devoirs", d'autant plus que ces exos ne sont pas demandés, c'est simplement moi qui me les donne pour m'entraîner et me préparer le mieux possible).
" je n'ai pas la possibilité de vérifier moi-même"
Comment veux tu coder quoi que ce soit si tu ne peux pas tester ?
Il existe des compilateurs en ligne (limités certes, mais pour débutant ça devrait suffire)
Exemple : https://ideone.com/
Remarque : pourquoi ne pas avoir regarder la classe Math comme je te l'indiquais ?
Comment veux tu coder quoi que ce soit si tu ne peux pas tester ?
Il existe des compilateurs en ligne (limités certes, mais pour débutant ça devrait suffire)
Exemple : https://ideone.com/
Remarque : pourquoi ne pas avoir regarder la classe Math comme je te l'indiquais ?
Pas une solution toute faite qui de toutes façons ne me servirait à rien.