fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. int[] array = {1,22,3,4444};
  10. int sumBF = 0;
  11. for (int i = 0; i < array.length; i++)
  12. {
  13. for (int j = i; j < array.length; j++)
  14. {
  15. String sumS = "";
  16. for (int k = i; k <= j; k++)
  17. sumS += array[k];
  18. sumBF += Integer.parseInt(sumS);
  19. }
  20. }
  21. System.out.println("Lazy brute force approach: " + sumBF);
  22. int endMultiplier = 1;
  23. int sum = 0;
  24. for (int i = array.length-1; i >= 0; i--)
  25. {
  26. sum += array[i] * (i+1) * endMultiplier;
  27. // Direct method of calculating k (with floating points):
  28. // int k = array[i] == 0 ? 10 : (int)Math.pow(10, 1+(int)Math.log10(array[i]));
  29. int k = 10;
  30. for (; k < array[i]; k *= 10)
  31. {}
  32. endMultiplier = k*endMultiplier + 1;
  33. }
  34. System.out.println("Improved algorithm: " + sum);
  35. }
  36. }
Success #stdin #stdout 0.05s 4386816KB
stdin
Standard input is empty
stdout
Lazy brute force approach: 14509370
Improved algorithm: 14509370