Optimise une boucle

Bonjour,



bonjour le forum j'ai un pb avec une boucle qui prends beaucoup de temps merci pour vos reponses:

p1 = 211876: p2 = 17296: p3 = 1081: p4 = 46
s1 = 1: s2 = 2: s3 = 3: s4 = 4: s5 = 4

st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s1 = s1 + 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st1

st2: If nx > p2 Then nx = nx - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st2

st3: If nx > p3 Then nx = nx - p3: p3 = p3 - p4: p4 = p4 - 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st3

st4: If nx > p4 Then nx = nx - p4: p4 = p4 - 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st4

s5 = s5 + nx: s(1) = s1: s(2) = s2: s(3) = s3: s(4) = s4: s(5) = s5

1 réponse

  1. Je ne sais quel langage tu utilises mais tu peux gagner un peu de temps en remplaçant:
    st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s1 = s1 + 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st1
    par
    n=0
    st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: n = n + 1: GoTo st1
    s1 = s1 + n: s2 = s2 + n: s3 = s3 + n: s4 = s4 + n: s5 = s5 + n
    Bonne continuation
    1. merci pour votre réactivité la boucle tourne tres bien.elle est juste lente
      je souhaiterai savoir si il existe une formule capable de donnee le meme resultat ,c'est en vba excel