[Résolu] Base 9 sans nombre 0
Publié : lun. 17/juin/2013 15:05
Bonjour à tous,
pouvez-vous m'aider à optimiser cette procédure, car on voit bien qu'il y a une logique, mais je n'arrive pas bien à la discerner.
le principe de la procédure c'est de décoder des nombre en fausse base 9 qui n'utilise pas de zéro, en vraie base décimale.
Je vous ai déjà parler de ce projet et ça me ferait extrêmement plaisir de vous associer tous à ce défi qui n'est pas coton et je ne souhaite pas qu'elle calcule seulement jusqu'à 1199 !
Je vous en remercie tous par avance.
pouvez-vous m'aider à optimiser cette procédure, car on voit bien qu'il y a une logique, mais je n'arrive pas bien à la discerner.
le principe de la procédure c'est de décoder des nombre en fausse base 9 qui n'utilise pas de zéro, en vraie base décimale.
Code : Tout sélectionner
Procedure B9ToB10(Nombre.q)
Retenue = 0
i = 1
While i < (Nombre / 10) * 9
If Mod(i, 9) = 0 ; Nombre divisible par 9
Retenue + 1
NombreSortie + 1
Else
If Retenue <= 9
NombreSortie = i + Retenue
ElseIf Retenue >= 9 And Retenue < 19
NombreSortie = i + Retenue + 10
ElseIf Retenue >= 19 And Retenue < 28
NombreSortie = i + Retenue + 20
ElseIf Retenue >= 28 And Retenue < 37
NombreSortie = i + Retenue + 30
ElseIf Retenue >= 37 And Retenue < 46
NombreSortie = i + Retenue + 40
ElseIf Retenue >= 46 And Retenue < 55
NombreSortie = i + Retenue + 50
ElseIf Retenue >= 55 And Retenue < 64
NombreSortie = i + Retenue + 60
ElseIf Retenue >= 64 And Retenue < 73
NombreSortie = i + Retenue + 70
ElseIf Retenue >= 73 And Retenue < 82
NombreSortie = i + Retenue + 80
ElseIf Retenue >= 82 And Retenue < 91
NombreSortie = i + Retenue + 90
ElseIf Retenue >= 91 And Retenue < 100
NombreSortie = i + Retenue + 200
ElseIf Retenue >= 100 And Retenue < 109
NombreSortie = i + Retenue + 210
ElseIf Retenue >= 109 And Retenue < 118
NombreSortie = i + Retenue + 220
ElseIf Retenue >= 118
NombreSortie = i + Retenue + 230
EndIf
EndIf
Debug "(" + Str(NombreSortie) + ") = " + Str(i) + " Retenue = " + Retenue
i + 1
Wend
ProcedureReturn i - 1
EndProcedure
Debug B9ToB10(1199)
Je vous en remercie tous par avance.