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.


Anmelden zum Antworten