Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.03 KB | None | 0 0
  1. package edu.kit.informatik;
  2. import java.util.InputMismatchException;
  3. import java.lang.NumberFormatException;
  4. public class Main {
  5. /**
  6.  * @author Aleksandra PawelekT
  7.  */
  8. /**
  9.  *  opens console and reads commands from user
  10.  * @param args
  11.  */
  12. public static void main(String[]args) {
  13. while (true) {
  14. try {
  15. String input = Terminal.readLine();
  16. if (input.trim().startsWith("quit")) {
  17. return;
  18. } else if (input.trim().startsWith("check-narcissistic-number")) {
  19. //separates command from numbers
  20. String[] separateFromCommand = input.trim().split(" ");
  21. //separates number from basis
  22. String[] separateNumberFromBasis = separateFromCommand[1].split(";");
  23. //saves basis as int and number in int array
  24. int basis = Integer.parseInt(separateNumberFromBasis[1]);
  25. int[] number = new int[separateNumberFromBasis[0].length()];
  26. int j = 0;
  27. for (int i = separateNumberFromBasis[0].trim().length() - 1; i >= 0; i--) {
  28. number[j] = Character.getNumericValue(separateNumberFromBasis[0].charAt(i));
  29. j++;
  30. }
  31. //proofes if number from input is an narcissistic number
  32. if (myInputNumber(number, basis) == requiredTermForNarcisticNumbers(number))  {
  33. Terminal.printLine(true);
  34. } else {
  35. Terminal.printLine(false);
  36. }
  37. }
  38. } catch (InputMismatchException e) {
  39. Terminal.printError("you gave flase input.");
  40. } catch (NumberFormatException e) {
  41. Terminal.printError("you gave the number in false form.");
  42. }
  43. }
  44. }
  45. /**
  46.  *  calculates number from input to narcissistic number
  47.  */
  48. public static int myInputNumber(int[] number, int basis) {
  49.  
  50. int a = 0;
  51. for (int i = 0; i < number.length; i++) {
  52. if (0 <= number[i] && number[i] <= basis - 1 && i <= basis) {
  53. int sum = number[i] * (int) Math.pow(basis, i);
  54. a =  a + sum;
  55. }
  56. }
  57. return a;
  58. }
  59. /**
  60.  * calculates required term for narcisstic numbers
  61.  * @param number
  62.  * @return
  63.  */
  64. public static double requiredTermForNarcisticNumbers(int[] number) {
  65. int n = number.length;
  66. double narcissticNumber = 0;
  67. for (int i = 0; i < n; i++) {
  68. narcissticNumber = narcissticNumber + Math.pow(number[i], n);
  69. }
  70. return narcissticNumber;
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement