Created
July 24, 2013 18:34
-
-
Save rfaisal/6073198 to your computer and use it in GitHub Desktop.
Find the greatest product of five consecutive digits in the 1000-digit number.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class LargestProductOf_m_ConsecutiveDigits { | |
| public static int calculate(String s,int m) throws Exception{ | |
| int max=0; | |
| for(int i=0;i<=s.length()-m;i++){ | |
| int prod=getProd(s, i, m); | |
| if(prod>max) max=prod; | |
| } | |
| return max; | |
| } | |
| private static int getProd(String s, int i,int m) throws Exception{ | |
| int prod=1; | |
| for(int j=i;j<i+m && j<=s.length()-1;j++){ | |
| if(s.charAt(i)<'0' || s.charAt(i)>'9') throw new Exception("Faulty string"); | |
| prod*=(int)(s.charAt(j)-'0'); | |
| } | |
| return prod; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class LargestProductOf_m_ConsecutiveDigitsTest { | |
| @Test | |
| public void testCalculate() throws Exception { | |
| assertEquals(0, LargestProductOf_m_ConsecutiveDigits.calculate("123", 5)); | |
| assertEquals(120, LargestProductOf_m_ConsecutiveDigits.calculate("12345", 5)); | |
| assertEquals(162, LargestProductOf_m_ConsecutiveDigits.calculate("12345099211", 5)); | |
| assertEquals(40824, LargestProductOf_m_ConsecutiveDigits.calculate("7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450", 5)); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment