解法一

逐步分解,按照规则进行转换。

  1. class Solution {
  2. public String intToRoman(int num) {
  3. StringBuilder stringBuilder = new StringBuilder();
  4. while (num > 0) {
  5. if (num >= 1000) {
  6. stringBuilder.append('M');
  7. num -= 1000;
  8. } else if (num >= 900) {
  9. stringBuilder.append("CM");
  10. num -= 900;
  11. } else if (num >= 500) {
  12. stringBuilder.append('D');
  13. num -= 500;
  14. } else if (num >= 400) {
  15. stringBuilder.append("CD");
  16. num -= 400;
  17. } else if (num >= 100) {
  18. stringBuilder.append('C');
  19. num -= 100;
  20. } else if (num >= 90) {
  21. stringBuilder.append("XC");
  22. num -= 90;
  23. } else if (num >= 50) {
  24. stringBuilder.append('L');
  25. num -= 50;
  26. } else if (num >= 40) {
  27. stringBuilder.append("XL");
  28. num -= 40;
  29. } else if (num >= 10) {
  30. stringBuilder.append('X');
  31. num -= 10;
  32. } else if (num >= 9) {
  33. stringBuilder.append("IX");
  34. num -= 9;
  35. } else if (num >= 5) {
  36. stringBuilder.append('V');
  37. num -= 5;
  38. } else if (num >= 4) {
  39. stringBuilder.append("IV");
  40. num -= 4;
  41. } else if (num >= 1) {
  42. stringBuilder.append('I');
  43. num -= 1;
  44. }
  45. }
  46. return stringBuilder.toString();
  47. }
  48. }