fork download
  1. class E287 {
  2. public static void main (String[] args) {
  3. System.out.println("Main challenge");
  4. largest(1234);
  5. largest(3253);
  6. largest(9800);
  7. largest(3333);
  8. largest(120);
  9. System.out.println();
  10.  
  11. System.out.println("Bonus 1");
  12. sort(1234, 0, 1);
  13. sort(3253, 0, 1);
  14. sort(9800, 0, 1);
  15. sort(3333, 0, 1);
  16. sort(120, 0, 1);
  17. System.out.println();
  18.  
  19. System.out.println("Bonus 2");
  20. kaprekar(6589);
  21. kaprekar(5455);
  22. kaprekar(6174);
  23. System.out.println();
  24. }
  25.  
  26. private static void largest (int in) {
  27. String temp = Integer.toString(in);
  28. int[] num = new int[temp.length()];
  29.  
  30. for (int i = 0; i < temp.length(); i++) {
  31. num[i] = temp.charAt(i) - '0';
  32. }
  33.  
  34. int largest = num[0];
  35. for (int i = 1; i < temp.length(); i++) {
  36. if (num[i] > largest)
  37. largest = num[i];
  38. }
  39.  
  40. System.out.printf("%d -> %d\n", in, largest);
  41. }
  42.  
  43. private static int sort (int in, int type, int print) {
  44. String temp = Integer.toString(in);
  45. int[] num = new int[temp.length()];
  46.  
  47. for (int i = 0; i < temp.length(); i++) {
  48. num[i] = temp.charAt(i) - '0';
  49. }
  50.  
  51. for (int i = 0; i < temp.length(); i++) {
  52. for (int j = i + 1; j < temp.length(); j++) {
  53. if (type == 0) {
  54. if (num[i] < num[j]) {
  55. int k = num[i];
  56. num[i] = num[j];
  57. num[j] = k;
  58. }
  59. }
  60. else if (type == 1) {
  61. if (num[i] > num[j]) {
  62. int k = num[i];
  63. num[i] = num[j];
  64. num[j] = k;
  65. }
  66. }
  67. else
  68. System.out.println("Error at sort method");
  69. }
  70. }
  71.  
  72. if (print == 1) {
  73. System.out.printf("%d -> ", in);
  74.  
  75. for (int i = 0; i < temp.length(); i++) {
  76. System.out.print(num[i]);
  77. }
  78.  
  79. System.out.println();
  80. return 0;
  81. }
  82. else if (print == 0) {
  83. StringBuilder strNum = new StringBuilder();
  84. for (int i : num) {
  85. strNum.append(i);
  86. }
  87.  
  88. return Integer.parseInt(strNum.toString());
  89. }
  90. else
  91. System.out.println("Error at sort method print");
  92.  
  93. return 0;
  94. }
  95.  
  96. private static void kaprekar (int in) {
  97. int val = in;
  98. int compare = in;
  99. int times = 0;
  100.  
  101. do {
  102. compare = val;
  103. if (val < 1000)
  104. val *= 10;
  105.  
  106. val = sort(val, 0, 0) - sort(val, 1, 0);
  107.  
  108. times++;
  109. } while (val != compare);
  110.  
  111. System.out.printf("%d -> %d (%d)\n", in, times-1, val);
  112. }
  113. }
Success #stdin #stdout 0.05s 711168KB
stdin
Standard input is empty
stdout
Main challenge
1234 -> 4
3253 -> 5
9800 -> 9
3333 -> 3
120 -> 2

Bonus 1
1234 -> 4321
3253 -> 5332
9800 -> 9800
3333 -> 3333
120 -> 210

Bonus 2
6589 -> 2 (6174)
5455 -> 5 (6174)
6174 -> 0 (6174)