Probleme mit Aufgabe : Euler Problem 8
-
HAllo
ich verusche gerade diese Aufgabe zu lösen :
http://projecteuler.net/index.php?section=problems&id=8
Ich weiß das 40824 als Lösung heraus kommen muss.Ich habe das wie folgt "gelöst".
package EulerProblems; public class EulerProblem8 extends GeneralEulerProblem{ private int solution = 0; public EulerProblem8(String problemName, boolean saveToFile,boolean debugOutPut) { super(problemName, saveToFile, debugOutPut); super.problemDescritption = "Find the greatest product of five consecutive digits in the 1000-digit number."; solveProblem(); printProblemSolution(Integer.toString(solution)); } @Override protected void solveProblem() { startTimer(); String debug = ""; String number = "73167176531330624919225119674426574742355349194934" + "96983520312774506326239578318016984801869478851843" + "85861560789112949495459501737958331952853208805511" + "12540698747158523863050715693290963295227443043557" + "66896648950445244523161731856403098711121722383113" + "62229893423380308135336276614282806444486645238749" + "30358907296290491560440772390713810515859307960866" + "70172427121883998797908792274921901699720888093776" + "65727333001053367881220235421809751254540594752243" + "52584907711670556013604839586446706324415722155397" + "53697817977846174064955149290862569321978468622482" + "83972241375657056057490261407972968652414535100474" + "82166370484403199890008895243450658541227588666881" + "16427171479924442928230863465674813919123162824586" + "17866458359124566529476545682848912883142607690042" + "24219022671055626321111109370544217506941658960408" + "07198403850962455444362981230987879927244284909188" + "84580156166097919133875499200524063689912560717606" + "05886116467109405077541002256983155200055935729725" + "71636269561882670428252483600823257530420752963450"; int sum = 0; for (int index = 0; index < number.length(); index += 5 ){ debug = "Check : " ; sum = 0; sum = (number.charAt(index + 0) - '0') * (number.charAt(index + 1) - '0') * (number.charAt(index + 2) - '0') * (number.charAt(index + 3) - '0') * (number.charAt(index + 4) - '0'); debug += number.charAt(index + 0) + " x " + number.charAt(index + 1) + " x " + number.charAt(index + 2) + " x " + number.charAt(index + 3) + " x " + number.charAt(index + 4) + " = " + sum; printDebugOutPut(debug); if (sum > solution){ solution = sum; } } stopTimer(); } public static void main(String[] args) { new EulerProblem8("EulerProblem8", false, true); } }
Bei mir kommt aber 31752 heraus und ich finde den Fehler nicht.
Kann mir jemand auf die Sprünge helfen.Vielen Dank
-
Du teilst den String in Fünfergruppen auf, und prüfst nicht alle aufeinanderfolgenden Zifferngruppen.
Beispiel: In der Zahl 1234567890 mußt du alle Zifferngruppen 12345, 23456,... 67890 vergleichen, deine Schleife nimmt nur 12345 und 67890.