Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package edu.kit.informatik;
- import java.util.InputMismatchException;
- import java.lang.NumberFormatException;
- public class Main {
- /**
- * @author Aleksandra PawelekT
- */
- /**
- * opens console and reads commands from user
- * @param args
- */
- public static void main(String[]args) {
- while (true) {
- try {
- String input = Terminal.readLine();
- if (input.trim().startsWith("quit")) {
- return;
- } else if (input.trim().startsWith("check-narcissistic-number")) {
- //separates command from numbers
- String[] separateFromCommand = input.trim().split(" ");
- //separates number from basis
- String[] separateNumberFromBasis = separateFromCommand[1].split(";");
- //saves basis as int and number in int array
- int basis = Integer.parseInt(separateNumberFromBasis[1]);
- int[] number = new int[separateNumberFromBasis[0].length()];
- int j = 0;
- for (int i = separateNumberFromBasis[0].trim().length() - 1; i >= 0; i--) {
- number[j] = Character.getNumericValue(separateNumberFromBasis[0].charAt(i));
- j++;
- }
- //proofes if number from input is an narcissistic number
- if (myInputNumber(number, basis) == requiredTermForNarcisticNumbers(number)) {
- Terminal.printLine(true);
- } else {
- Terminal.printLine(false);
- }
- }
- } catch (InputMismatchException e) {
- Terminal.printError("you gave flase input.");
- } catch (NumberFormatException e) {
- Terminal.printError("you gave the number in false form.");
- }
- }
- }
- /**
- * calculates number from input to narcissistic number
- */
- public static int myInputNumber(int[] number, int basis) {
- int a = 0;
- for (int i = 0; i < number.length; i++) {
- if (0 <= number[i] && number[i] <= basis - 1 && i <= basis) {
- int sum = number[i] * (int) Math.pow(basis, i);
- a = a + sum;
- }
- }
- return a;
- }
- /**
- * calculates required term for narcisstic numbers
- * @param number
- * @return
- */
- public static double requiredTermForNarcisticNumbers(int[] number) {
- int n = number.length;
- double narcissticNumber = 0;
- for (int i = 0; i < n; i++) {
- narcissticNumber = narcissticNumber + Math.pow(number[i], n);
- }
- return narcissticNumber;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement