fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.math.BigDecimal;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11.  
  12. static BigDecimal fastPow(BigDecimal num, int pow) {
  13. if (pow == 0) return BigDecimal.valueOf(1.); //проверка нулевой степени
  14. String BYNPOW = Integer.toString(pow, 2); //представление степени двоичным числом
  15. BigDecimal res = BigDecimal.valueOf(0); //инициализация результата НУЛЕМ
  16. for (int i = BYNPOW.length() - 1; i <= 0; i++) { //цикл перебора от СТАРШЕГО бита к МЛАДШЕМУ
  17. if (BYNPOW.charAt(i) == '1') { //TODO
  18. res = res.multiply(res).multiply(num);
  19. } else res = res.multiply(res);
  20. }
  21. return res;
  22. }
  23.  
  24. public static void main (String[] args) throws java.lang.Exception
  25. {
  26. System.out.println(fastPow(BigDecimal.valueOf(3), 5));
  27. }
  28. }
Success #stdin #stdout 0.06s 32724KB
stdin
Standard input is empty
stdout
0