IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

décomposer un nombre pour en multiplier ces chiffres


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Par défaut décomposer un nombre pour en multiplier ces chiffres
    Bonjour à tous...

    Voila aprés avoir saisit un nombre à trois chiffres, j'aimerais pouvoir additionner les cube de ses composants

    ex : Aprés avoir saisit 153 j'aimerais que sa calcul 1 au cube + 5 au cube + 3 au cube.

    Comment faire cela ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    beh, il te suffit de decomposer ta chaine de caractere en X caracteres (ou X est la longueur de la chaine) d'appliquer la fonction Math.Pow().... apres avoir
    passer le chiffre en string ou en double (ou float) et additionné

    Bref, ca doit se faire en 5 lignes de code je dirais

    THe Monz, Toulouse

    [edit]
    Par pur bonté informatique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string chiffre = "12345";
    double res = 0.0f;
    for (int i = 0; i < chiffre.Length; i++)
    {
       double value = Convert.ToDouble(chiffre[i].ToString());
       res += Math.Pow(value, 3);
    }
    Trace.WriteLine("resultat = " + res.ToString());

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tu décomposes le nombre de manière à récupérer chaque chiffre le composant. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int monNombre = 156;
    foreach(char c in monNombre.ToString())
    {
        // c correspond à un chiffre du nombre sous forme d'un caractère.
        // Le convertir en chiffre pour le calcul.
    }

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Tu saisis où ton chiffre ?

    Bon bref l'important c'est de savoir si tu le récupère en string. Si c'est le cas tu fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int somme = 0;
    char myChar;
    foreach (char c in Mastring.ToCharArray())
    {
         myChar = Convert.ToInt32(c);
         somme = somme + (myChar*myChar*myChar);
    }
    Je ne connais pas de fonction cube, donc ..

    EDIT :
    Griller deux fois !!!!!

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Ced600 : Griller deux fois !!!!!

    Et oui, on pense plus vite que tu n'écris

    The Monz, Toulouse

    PS : Si vous avez un petit bout de code à me faire faire, ca m'occupera !
    (this is a serious proposal ! )

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Ced600 : Griller deux fois !!!!!

    Et oui, on pense plus vite que tu n'écris

    The Monz, Toulouse

    PS : Si vous avez un petit bout de code à me faire faire, ca m'occupera !
    (this is a serious proposal ! )
    lol
    C'est parce que j'écris très lentement

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Une solution en math, sait on jamais ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int nb = 153;
                int res = 0;
                while (nb > 0)
                {
                    res += (int)Math.Pow(nb % 10, 3);
                    nb = nb / 10;
                }
     
     
    //Il faut quand même afficher le resultat
                MessageBox.Show(res.ToString());

Discussions similaires

  1. [MySQL] Table "Connectés" : nombre de connexions stoppé au chiffre 127, pourquoi ?
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/03/2007, 17h39
  2. Etat - Fractionner un nombre pour l'impression
    Par migaleb dans le forum Access
    Réponses: 2
    Dernier message: 06/12/2005, 20h56
  3. Décomposer une valeur pour en retirer les octets ?
    Par AsmCode dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/07/2005, 19h01
  4. Réponses: 5
    Dernier message: 20/05/2005, 11h33
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo