class E287 {
public static void main
(String[] args
) { System.
out.
println("Main challenge"); largest(1234);
largest(3253);
largest(9800);
largest(3333);
largest(120);
System.
out.
println("Bonus 1"); sort(1234, 0, 1);
sort(3253, 0, 1);
sort(9800, 0, 1);
sort(3333, 0, 1);
sort(120, 0, 1);
System.
out.
println("Bonus 2"); kaprekar(6589);
kaprekar(5455);
kaprekar(6174);
}
private static void largest (int in) {
int[] num = new int[temp.length()];
for (int i = 0; i < temp.length(); i++) {
num[i] = temp.charAt(i) - '0';
}
int largest = num[0];
for (int i = 1; i < temp.length(); i++) {
if (num[i] > largest)
largest = num[i];
}
System.
out.
printf("%d -> %d\n", in, largest
); }
private static int sort (int in, int type, int print) {
int[] num = new int[temp.length()];
for (int i = 0; i < temp.length(); i++) {
num[i] = temp.charAt(i) - '0';
}
for (int i = 0; i < temp.length(); i++) {
for (int j = i + 1; j < temp.length(); j++) {
if (type == 0) {
if (num[i] < num[j]) {
int k = num[i];
num[i] = num[j];
num[j] = k;
}
}
else if (type == 1) {
if (num[i] > num[j]) {
int k = num[i];
num[i] = num[j];
num[j] = k;
}
}
else
System.
out.
println("Error at sort method"); }
}
if (print == 1) {
System.
out.
printf("%d -> ", in
);
for (int i = 0; i < temp.length(); i++) {
}
return 0;
}
else if (print == 0) {
StringBuilder strNum = new StringBuilder();
for (int i : num) {
strNum.append(i);
}
return Integer.
parseInt(strNum.
toString()); }
else
System.
out.
println("Error at sort method print");
return 0;
}
private static void kaprekar (int in) {
int val = in;
int compare = in;
int times = 0;
do {
compare = val;
if (val < 1000)
val *= 10;
val = sort(val, 0, 0) - sort(val, 1, 0);
times++;
} while (val != compare);
System.
out.
printf("%d -> %d (%d)\n", in, times
-1, val
); }
}
Y2xhc3MgRTI4NyB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewoJCVN5c3RlbS5vdXQucHJpbnRsbigiTWFpbiBjaGFsbGVuZ2UiKTsKCQlsYXJnZXN0KDEyMzQpOwoJCWxhcmdlc3QoMzI1Myk7CgkJbGFyZ2VzdCg5ODAwKTsKCQlsYXJnZXN0KDMzMzMpOwoJCWxhcmdlc3QoMTIwKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCgkJU3lzdGVtLm91dC5wcmludGxuKCJCb251cyAxIik7CgkJc29ydCgxMjM0LCAwLCAxKTsKCQlzb3J0KDMyNTMsIDAsIDEpOwoJCXNvcnQoOTgwMCwgMCwgMSk7CgkJc29ydCgzMzMzLCAwLCAxKTsKCQlzb3J0KDEyMCwgMCwgMSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCk7CgoJCVN5c3RlbS5vdXQucHJpbnRsbigiQm9udXMgMiIpOwoJCWthcHJla2FyKDY1ODkpOwoJCWthcHJla2FyKDU0NTUpOwoJCWthcHJla2FyKDYxNzQpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJfQoJCglwcml2YXRlIHN0YXRpYyB2b2lkIGxhcmdlc3QgKGludCBpbikgewoJCVN0cmluZyB0ZW1wID0gSW50ZWdlci50b1N0cmluZyhpbik7CgkJaW50W10gbnVtID0gbmV3IGludFt0ZW1wLmxlbmd0aCgpXTsKCQkKCQlmb3IgKGludCBpID0gMDsgaSA8IHRlbXAubGVuZ3RoKCk7IGkrKykgewoJCQludW1baV0gPSB0ZW1wLmNoYXJBdChpKSAtICcwJzsKCQl9CgkJCgkJaW50IGxhcmdlc3QgPSBudW1bMF07CgkJZm9yIChpbnQgaSA9IDE7IGkgPCB0ZW1wLmxlbmd0aCgpOyBpKyspIHsKCQkJaWYgKG51bVtpXSA+IGxhcmdlc3QpCgkJCQlsYXJnZXN0ID0gbnVtW2ldOwoJCX0KCQkKCQlTeXN0ZW0ub3V0LnByaW50ZigiJWQgLT4gJWRcbiIsIGluLCBsYXJnZXN0KTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgaW50IHNvcnQgKGludCBpbiwgaW50IHR5cGUsIGludCBwcmludCkgewoJCVN0cmluZyB0ZW1wID0gSW50ZWdlci50b1N0cmluZyhpbik7CgkJaW50W10gbnVtID0gbmV3IGludFt0ZW1wLmxlbmd0aCgpXTsKCQkKCQlmb3IgKGludCBpID0gMDsgaSA8IHRlbXAubGVuZ3RoKCk7IGkrKykgewoJCQludW1baV0gPSB0ZW1wLmNoYXJBdChpKSAtICcwJzsKCQl9CgkJCgkJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wLmxlbmd0aCgpOyBpKyspIHsKCQkJZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVtcC5sZW5ndGgoKTsgaisrKSB7CgkJCQlpZiAodHlwZSA9PSAwKSB7CgkJCQkJaWYgKG51bVtpXSA8IG51bVtqXSkgewoJCQkJCQlpbnQgayA9IG51bVtpXTsKCQkJCQkJbnVtW2ldID0gbnVtW2pdOwoJCQkJCQludW1bal0gPSBrOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYgKHR5cGUgPT0gMSkgewoJCQkJCWlmIChudW1baV0gPiBudW1bal0pIHsKCQkJCQkJaW50IGsgPSBudW1baV07CgkJCQkJCW51bVtpXSA9IG51bVtqXTsKCQkJCQkJbnVtW2pdID0gazsKCQkJCQl9CgkJCQl9CgkJCQllbHNlCgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBhdCBzb3J0IG1ldGhvZCIpOwoJCQl9CgkJfQoJCQoJCWlmIChwcmludCA9PSAxKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRmKCIlZCAtPiAiLCBpbik7CgkJCQoJCQlmb3IgKGludCBpID0gMDsgaSA8IHRlbXAubGVuZ3RoKCk7IGkrKykgewkJCgkJCQlTeXN0ZW0ub3V0LnByaW50KG51bVtpXSk7CgkJCX0KCQkJCgkJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCQlyZXR1cm4gMDsKCQl9CgkJZWxzZSBpZiAocHJpbnQgPT0gMCkgewoJCQlTdHJpbmdCdWlsZGVyIHN0ck51bSA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CgkJCWZvciAoaW50IGkgOiBudW0pIHsKCQkJCXN0ck51bS5hcHBlbmQoaSk7CgkJCX0KCQkJCgkJCXJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHN0ck51bS50b1N0cmluZygpKTsKCQl9CgkJZWxzZQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGF0IHNvcnQgbWV0aG9kIHByaW50Iik7CgkJCgkJcmV0dXJuIDA7Cgl9CgkKCXByaXZhdGUgc3RhdGljIHZvaWQga2FwcmVrYXIgKGludCBpbikgewoJCWludCB2YWwgPSBpbjsKCQlpbnQgY29tcGFyZSA9IGluOwoJCWludCB0aW1lcyA9IDA7CgkJCgkJZG8gewoJCQljb21wYXJlID0gdmFsOwoJCQlpZiAodmFsIDwgMTAwMCkKCQkJCXZhbCAqPSAxMDsKCQkJCgkJCXZhbCA9IHNvcnQodmFsLCAwLCAwKSAtIHNvcnQodmFsLCAxLCAwKTsKCQkJCgkJCXRpbWVzKys7CgkJfSB3aGlsZSAodmFsICE9IGNvbXBhcmUpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRmKCIlZCAtPiAlZCAoJWQpXG4iLCBpbiwgdGltZXMtMSwgdmFsKTsKCX0KfQ==