Question Multiplier chaque chiffre d'un nombre

Plus d'informations
il y a 9 ans 4 mois #22631 par Speed83
Bonjour,

J'ai une variable contenant un nombre du type 12345678.

J'aurai besoin de multiplier chaque chiffre de ce nombre comme dans l'exemple ci-dessous :
(1*8)+(2*7)+(3*6)+(4*5)+(5*4)+(6*3)+(7*2)+(8*1)

Mais je ne sais pas comment splitter correctement le nombre afin de récupérer chaque chiffre et ensuite le multiplier.

Je pense que ce n'est pas compliqué mais là je bloque...

Avez-vous une idée ?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 4 mois #22632 par Laurent Dardenne
Salut,
une solution:
[code:1]
$n=12345678
$s=$n.ToString()
$t=[char[]]$s
[system.Array]::Reverse($T)
$i=1;$T|% { \"$i*$_\";$i++}
[/code:1]
Il y a surement plus simple.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 4 mois #22634 par Speed83
Bonjour Laurent,

Merci pour cette réponse.

Je vais analyser ce petit bout de code afin de bien le comprendre et l'adapter complètement pour mon script.

Encore merci ! ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 4 mois #22635 par Speed83
Malheureusement, je n'arrive pas a adapter le code.
Je voulais faire une boucle while en modifiant la ligne \"$i=1;$T|% { \"$i*$_\";$i++}\" afin de retrouver dans une variable au final le résultat sous la forme (1*8)+(2*7)+(3*6)+(4*5)+(5*4)+(6*3)+(7*2)+(8*1).

Ainsi ensuite, je pourrai calculer la somme mais j'y arrive pas... je continu à chercher.<br><br>Message édité par: Speed83, à: 22/11/16 13:51

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #22638 par Laurent Dardenne
Le code proposé construit une string, un 'tronçon' de ton opération, soit tu construis une ligne de texte , comme ton exemple, puis tu utilises Invoke-Expression.

Soit tu utilises une variable temporaire $Total dans une boucle :
[code:1]
[int]$Total=0
[Int]$i=0 #pour forcer la conversion
#boucle
$Total += $i*$_
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #22641 par Speed83
Bonjour Laurent,

Merci pour ces informations mais malheureusement je ne comprends pas :dry:
Concernant la boucle c'est exactement ce que j'ai déjà tenté de faire avant mais je n'y arrive pas. Depuis que tu m'as fournis ton premier code, je n'arrive pas à isoler chaque chiffre du nombre 12345678 par exemple pour ensuite le multiplier par $i.


L'idéal serait ta première idée mais comment construire la ligne de texte et utiliser invoke-expression. Je bloque sur ça, comment construire ma ligne à partir du nombre 12345678.
Peux-tu m'éclairer sur comment faire pour avoir ma ligne (1*8)+(2*7)+(3*6)+(4*5)+(5*4)+(6*3)+(7*2)+(8*1) ?

Merci<br><br>Message édité par: Speed83, à: 23/11/16 14:27

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.050 secondes
Propulsé par Kunena