Decomposition d'un nombre en java [Résolu]

pascalinette44
Messages postés
13
Date d'inscription
samedi 3 mars 2007
Dernière intervention
26 avril 2007
- 26 avril 2007 à 08:55 - Dernière réponse : cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
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
Afficher la suite 

Votre réponse

5 réponses

Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
- 26 avril 2007 à 15:24
0
Merci
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;
}
Commenter la réponse de Ombitious_Developper
Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 26 avril 2007 à 15:41
0
Merci
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
Commenter la réponse de Twinuts
Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
- 26 avril 2007 à 15:55
0
Merci
Salut:




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

De plus le compilateur va transformer chaque constante "..." en objet String.
Commenter la réponse de Ombitious_Developper
cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Dernière intervention
23 septembre 2014
- 27 avril 2007 à 09:08
0
Merci
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
Commenter la réponse de cs_ov3rdoze
cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Dernière intervention
23 septembre 2014
- 26 avril 2007 à 09:49
-1
Merci
Bonjour

Qu'est-ce que tu entends par "décomposer"?
Commenter la réponse de cs_ov3rdoze

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.