diff options
author | InigoGutierrez <inigogf.95@gmail.com> | 2017-11-18 13:24:40 +0100 |
---|---|---|
committer | InigoGutierrez <inigogf.95@gmail.com> | 2017-11-18 13:24:40 +0100 |
commit | 67e1333c2a8ce8c723a4fe14eb33fe7a267712d6 (patch) | |
tree | 7983f77ffb7b64ba2246342d2dffa64fc0467383 | |
parent | da70821a8b80ce63b75d54cd49e6bd881e4d60e9 (diff) | |
download | AceptaElReto-67e1333c2a8ce8c723a4fe14eb33fe7a267712d6.tar.gz AceptaElReto-67e1333c2a8ce8c723a4fe14eb33fe7a267712d6.zip |
Problema 100 (Wrong Answer)
-rw-r--r-- | AceptaElReto/src/Problema100.java | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/AceptaElReto/src/Problema100.java b/AceptaElReto/src/Problema100.java index b6f47cd..aa94a98 100644 --- a/AceptaElReto/src/Problema100.java +++ b/AceptaElReto/src/Problema100.java @@ -5,25 +5,26 @@ * Para la propia constante de Kaprekar deberá indicar 0.
*/
-import java.util.ArrayList;
+import java.util.Arrays;
public class Problema100 {
public static void main(String[] args) {
int counter;
- final int KAPREKAR = 6174;
final String KAPREKAR_STRING = "6174";
for ( String arg: args ) {
+ //System.out.println("Input: " + arg);
if ( arg.equals(KAPREKAR_STRING) ) {
System.out.println(0);
}
else {
counter = 0;
- while ( arg != KAPREKAR_STRING && counter < 8 ) {
+ while ( !arg.equals(KAPREKAR_STRING) && counter < 8 ) {
arg = nextKaprekar(arg);
counter++;
+ //System.out.println("Iteration " + counter + ": " + arg);
}
System.out.println(counter);
}
@@ -33,18 +34,44 @@ public class Problema100 { }
private static String nextKaprekar(String arg) {
- char[] array;
- char[] newArray = new char[4];
- char max = 0;
- array = arg.toCharArray();
- // Order the array
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- if ( number > max ) {
-
- }
+ char[] ascending = new char[4];
+ char[] chars = arg.toCharArray();
+ for ( int i = 0; i < 4; i++ ) {
+ if (!(i >= chars.length) ) {
+ ascending[i] = chars[i];
+ }
+ else {
+ ascending[i] = '0';
}
}
+ // Order the array in ascending order
+ Arrays.sort(ascending);
+ //System.out.println("Ascending ordered for " + arg + ": " + charArrayToString(ascending));
+
+ // Compute new value
+ int ascendingInt = Character.getNumericValue(ascending[0])*1000
+ + Character.getNumericValue(ascending[1])*100
+ + Character.getNumericValue(ascending[2])*10
+ + Character.getNumericValue(ascending[3]);
+ int descendingInt = Character.getNumericValue(ascending[3])*1000
+ + Character.getNumericValue(ascending[2])*100
+ + Character.getNumericValue(ascending[1])*10
+ + Character.getNumericValue(ascending[0]);
+ //System.out.println("Result: " + String.valueOf(descendingInt - ascendingInt));
+ return String.valueOf(descendingInt - ascendingInt);
}
+ /**
+ * For testing.
+ * @param charArray
+ * @return String corresponding to charArray.
+ */
+ /*public static String charArrayToString(char[] charArray) {
+ String result = "";
+ for ( int i = 0; i < charArray.length; i++ ) {
+ result += String.valueOf(Character.getNumericValue(charArray[i]));
+ }
+ return result;
+ }*/
+
}
|