aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2017-11-18 13:24:40 +0100
committerInigoGutierrez <inigogf.95@gmail.com>2017-11-18 13:24:40 +0100
commit67e1333c2a8ce8c723a4fe14eb33fe7a267712d6 (patch)
tree7983f77ffb7b64ba2246342d2dffa64fc0467383
parentda70821a8b80ce63b75d54cd49e6bd881e4d60e9 (diff)
downloadAceptaElReto-67e1333c2a8ce8c723a4fe14eb33fe7a267712d6.tar.gz
AceptaElReto-67e1333c2a8ce8c723a4fe14eb33fe7a267712d6.zip
Problema 100 (Wrong Answer)
-rw-r--r--AceptaElReto/src/Problema100.java53
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;
+ }*/
+
}