fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main(String[] args) {
  11. String temp = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";
  12. long max = 0;
  13.  
  14. for (int i = 0; i < temp.length() - 12; i++) {
  15. int min = temp.charAt(i) - '0';
  16. long product = 1;
  17.  
  18. for (int k = i; k < 13 + i; k++) {
  19. int numK = temp.charAt(k) - '0';
  20. min = Math.min(numK, min);
  21.  
  22. if (min == 0) {
  23. product = 0;
  24. i = k + 1; // The value at `k` is a zero, so we'll not bother processing from `i through k`.
  25. break;
  26. }
  27. else {
  28. product = product * numK;
  29. }
  30. }
  31.  
  32. if (product > max) {
  33. max = product;
  34. }
  35. }
  36.  
  37. System.out.println("max : " + max);
  38.  
  39. max = 0;
  40. long runningProduct = 1;
  41. int numbersLoaded = 0;
  42. for (int i = 0; i < temp.length(); i++) {
  43. int numI = temp.charAt(i) - '0';
  44.  
  45. if (numI == 0) {
  46. runningProduct = 1;
  47. numbersLoaded = 0;
  48. }
  49. else {
  50. if (numbersLoaded == 13) {
  51. runningProduct /= temp.charAt(i - 13) - '0';
  52. }
  53. else {
  54. numbersLoaded += 1;
  55. }
  56.  
  57. runningProduct *= numI;
  58.  
  59. if (runningProduct > max) {
  60. max = runningProduct;
  61. }
  62. }
  63. }
  64.  
  65. System.out.println("max : " + max);
  66. }
  67. }
Success #stdin #stdout 0.1s 320512KB
stdin
Standard input is empty
stdout
max : 23514624000
max : 23514624000