Se connecter avec
S'enregistrer | Connectez-vous

Faire un programme en c++, nombres entier sà chiffres romains

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

tout d'abord définir l'algo de conversion (que je ne connais pas du tout) et ensuite une décomposition du chiffre arabe, conversion de chaque partie et affichage de la string romaine.

Le problème n'est pas de faire ça en C, en javascript ou en cobol mais bien de trouver comment on effectue la conversion.
Expert Programmation

Petit plus: j'ai trouvé sur un site une fonction VB qui le fait:
  1. Function NbEnRomain(Nb As Integer) As String
  2. Dim ChiffreRomain As String
  3. ChiffreRomain = String(Int(Nb / 1000), "M")
  4. Nb = Nb - (Int(Nb / 1000) * 1000)
  5. If Nb >= 900 Then
  6. ChiffreRomain = ChiffreRomain & "CM"
  7. ElseIf Nb >= 500 And Nb < 900 Then
  8. ChiffreRomain = ChiffreRomain & "D" & String(Int((Nb - 500) / 100), "C")
  9. ElseIf Nb >= 400 And Nb < 500 Then
  10. ChiffreRomain = ChiffreRomain & "CD"
  11. Else
  12. ChiffreRomain = ChiffreRomain & String(Int(Nb / 100), "C")
  13. End If
  14. Nb = Nb - (Int(Nb / 100) * 100)
  15. If Nb >= 90 Then
  16. ChiffreRomain = ChiffreRomain & "XC"
  17. ElseIf Nb >= 50 And Nb < 90 Then
  18. ChiffreRomain = ChiffreRomain & "L" & String(Int((Nb - 50) / 10), "X")
  19. ElseIf Nb >= 40 And Nb < 50 Then
  20. ChiffreRomain = ChiffreRomain & "XL"
  21. Else
  22. ChiffreRomain = ChiffreRomain & String(Int(Nb / 10), "X")
  23. End If
  24. Nb = Nb - (Int(Nb / 10) * 10)
  25. If Nb >= 9 Then
  26. ChiffreRomain = ChiffreRomain & "IX"
  27. ElseIf Nb >= 5 And Nb < 9 Then
  28. ChiffreRomain = ChiffreRomain & "V" & String(Int((Nb - 5) / 1), "I")
  29. ElseIf Nb >= 4 And Nb < 5 Then
  30. ChiffreRomain = ChiffreRomain & "IV"
  31. Else
  32. ChiffreRomain = ChiffreRomain & String(Int(Nb / 1), "I")
  33. End If
  34. NbEnRomain = ChiffreRomain
  35. End Function
Lassé par la pub ? Créez un compte
Tom's guide dans le monde