1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
Public Sub test()
nx = 1530259
p1 = 211876: p2 = 17296: p3 = 1081: p4 = 46
q1 = 211876: q2 = 17296: q3 = 1081: q4 = 46
s1 = 1: s2 = 2: s3 = 3: s4 = 4: s5 = 4
Cells.Clear
Cells(1, 1) = "Nx"
Cells(1, 2) = "P1"
Cells(1, 3) = "P2"
Cells(1, 4) = "P3"
Cells(1, 5) = "P4"
Cells(1, 6) = "s1"
Cells(1, 7) = "s2"
Cells(1, 8) = "s3"
Cells(1, 9) = "s4"
Cells(1, 10) = "s5"
' le calcul initial
Do While nx > p1
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
Loop
Cells(4, 1) = nx
Cells(4, 2) = p1
Cells(4, 3) = p2
Cells(4, 4) = p3
Cells(4, 5) = p4
Cells(4, 6) = s1
Cells(4, 7) = s2
Cells(4, 8) = s3
Cells(4, 9) = s4
Cells(4, 10) = s5
' Le calcul réduit à P3
n=0
Do While nx > p1
n = n + 1
nx = nx - p1
p1 = p1 - p2
p2 = p2 - p3
' p3 = p3 - p4
If n Mod 2 = 0 Then
p3 = q3 - n * q4 + (n * (n - 1) / 2)
Else
p3 = q3 - n * q4 + (n - 1) + ((n - 1) * (n - 2) / 2)
End If
Loop
Cells(5, 1) = nx
Cells(5, 2) = p1
Cells(5, 3) = p2
Cells(5, 4) = p3
p4 = q4 - n
Cells(5, 5) = p4
s1 = s1 + n
s2 = s2 + n
s3 = s3 + n
s4 = s4 + n
s5 = s5 + n
Cells(5, 6) = s1
Cells(5, 7) = s2
Cells(5, 8) = s3
Cells(5, 9) = s4
Cells(5, 10) = s5
'... on obtient bien la même chose
End Sub |
Partager