Decomposition d'un nombre en java

Résolu
pascalinette44 Messages postés 13 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 26 avril 2007 - 26 avril 2007 à 08:55
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014 - 27 avril 2007 à 09:08
Bonjour a tous , je fais actuellement un exercice dont le but est de  realiser un programme  permettant  de decomposer un nombre entier en base 10.Ni arrivant pas j'aurais voulu trouver un corrigé mais le site n'en propose pas(pffff).alors si quelqu'un sait comment si prendre ,ce serait tres gentil.
merci
A voir également:

5 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
26 avril 2007 à 15:24
Salut:

// Factorisation en base 10

int [] decompose (int n) {
   
// Note: "" n'est pas un espace, c'est du vide


    int length = new String ( "" + n + "").length ();
    int [] result = new int [length];
    int i = 0;
   
    while (n > 0) {
       result [i++] = n % 10;
       n /= 10;
    }

    return result;
}
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
26 avril 2007 à 15:41
Salut,

concernant la récupération de length tu peux simplement faire

int length = ("" + n).length ();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
26 avril 2007 à 15:55
Salut:




Je le sais, c'est une façon pour écrire.

De plus le compilateur va transformer chaque constante "..." en objet String.
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
27 avril 2007 à 09:08
Salut

Pour moi factoriser en base 10 signifie récupérer l'ensemble des facteurs premiers du nombre à "décomposer" dans une base 10 :

20 ==> 2 * 2 * 5

Si c'est effectivement ça que tu souhaite faire, je ne vois pas d'autre solution que de tout tester : 
int fact = 2;  
while (n > 0) {
       if (! n % fact) {
             result [i++] = fact;
             n /= fact;
       } else do {
          fact++;
       } while (fact pas premier) //Je sais pas comment on fait en java
}

Chaque fois que tu incrémente fact il faut le faire jusqu'à tomber sur un nombre premier, sinon tu vas avoir dans ton tablau des nombres qui seront eux-même factorisable... Mais à toi de faire le test je suis pas un fan de Java...

Ceci est bien sûr la méthode la plus directe et certainement la moins éfficace (en terme de temps) mais ya énormement d'algorithmes qui traitent le sujet. Cherche sur google
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
26 avril 2007 à 09:49
Bonjour

Qu'est-ce que tu entends par "décomposer"?
-1
Rejoignez-nous