bigIntegerPotenzen.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import javax.swing.JOptionPane;
  2. import java.util.Arrays;
  3. import flanagan.io.Db;
  4. import java.math.BigInteger;
  5. public class bigIntegerPotenzen {
  6. public static void main(String [] args) {
  7. // init variables
  8. int exponent = 0;
  9. int base = 3;
  10. BigInteger res;
  11. // get base input
  12. try {
  13. base = Db.readInt("base = ");
  14. System.out.println("base input = " + base);
  15. } catch (NumberFormatException e) {
  16. Db.show("Error: no valid integer input provided");
  17. System.exit(1);
  18. }
  19. // get exponent input
  20. try {
  21. exponent = Db.readInt("exponent = ");
  22. System.out.println("exponent input = " + exponent);
  23. } catch (NumberFormatException e) {
  24. Db.show("Error: no valid integer input provided");
  25. System.exit(1);
  26. }
  27. // print dashes
  28. for (int i = 0; i < 80; i++) {
  29. System.out.format("-");
  30. }
  31. System.out.println();
  32. // validate that: exponent, base >= 0
  33. if (base < 0) {
  34. Db.show("Error: 'base' cannot be negative");
  35. System.exit(1);
  36. } else if (exponent < 0) {
  37. Db.show("Error: 'exponent' cannot be negative");
  38. System.exit(1);
  39. }
  40. // use big integer
  41. BigInteger bigN = BigInteger.valueOf(exponent);
  42. BigInteger bigB = BigInteger.valueOf(base);
  43. for (int n = 0; n <= exponent; n++) {
  44. res = bigB.pow(n);
  45. System.out.format("n = %d \t %d^%d \t %d (%d-digit)\n", n, base, n, res, res.toString().length());
  46. }
  47. // print dashes
  48. for (int i = 0; i < 80; i++) {
  49. System.out.format("-");
  50. }
  51. System.out.println();
  52. System.out.println("Successfully executed the task ...");
  53. System.exit(0);
  54. }
  55. }