Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 10.74 KB | None | 0 0
  1. package BrainingHub_5_2018_10_02;
  2.  
  3. import java.util.Arrays;
  4.  
  5. /**
  6.  *
  7.  * @author mezei
  8.  */
  9. public class Menu {
  10.  
  11.     public static void main(String[] args) {
  12.         printMenu();
  13.     }
  14.  
  15.     public static void printMenu() {
  16.         System.out.println("Please choose a number of the following tasks: \n1. 7.3.5 \n2. 7.3.6 \n"
  17.                 + "3. 7.3.8 \n4. 7.3.13 \n5. 7.3.15 \n6. 7.3.16 \n7. 7.3.17\n"
  18.                 + "8. 7.3.18 \n9. 7.3.19\n"
  19.                 + "10. Recursive function returns minimum value of an array \n"
  20.                 + "11. Recursive function computes sum of the elements\n"
  21.                 + "12. Recursive function searching for a target in an array \n\nYour choice: ");
  22.         int choice = extra.Console.readInt();
  23.  
  24.         do {
  25.             switch (choice) {
  26.                 case 1:
  27.                     printSumOfDigits();
  28.                     break;
  29.  
  30.                 case 2:
  31.                     printNearestPrime();
  32.                     break;
  33.  
  34.                 case 3:
  35.                     printIntegersBetween();
  36.                     break;
  37.  
  38.                 case 4:
  39.                     printSumOfNumbers();
  40.                     break;
  41.  
  42.                 case 5:
  43.                     printPrimesBetweenTwoNumbers();
  44.                     break;
  45.  
  46.                 case 6:
  47.                     asciiGraphics();
  48.                     break;
  49.  
  50.                 case 7:
  51.                     printASCIIGraphics2();
  52.                     break;
  53.  
  54.                 case 8:
  55.                     printAckermannFunction();
  56.                     break;
  57.  
  58.                 case 9:
  59.                     printHanoiSolution();
  60.                     break;
  61.  
  62.                 case 10:
  63.                     printMinOfAnArray();
  64.                     break;
  65.  
  66.                 case 11:
  67.                     printSumOfAnArray();
  68.                     break;
  69.             }
  70.         } while (choice == 0);
  71.     }
  72.  
  73.     public static int sumOfDigits(int number) {
  74.         int absValueNumber = Math.abs(number);
  75.         int nextDigit;
  76.         int sumOfDigits = 0;
  77.  
  78.         do {
  79.             nextDigit = absValueNumber % 10;
  80.             sumOfDigits += nextDigit;
  81.             absValueNumber /= 10;
  82.  
  83.             if (absValueNumber < 10) {
  84.                 sumOfDigits += absValueNumber;
  85.             }
  86.         } while (absValueNumber >= 10);
  87.  
  88.         return sumOfDigits;
  89.     }
  90.  
  91.     public static void printSumOfDigits() {
  92.         System.out.println("7.3.5." + "\nType in a number: ");
  93.         int number = extra.Console.readInt();
  94.         System.out.println("The sum of digits is: " + sumOfDigits(number));
  95.     }
  96.  
  97.     public static int nearestPrime(int number) {
  98.  
  99.         int leftPrime = number;
  100.         int rightPrime = number;
  101.  
  102.         while (!isPrime(leftPrime) || !isPrime(rightPrime)) {
  103.             leftPrime--;
  104.             rightPrime++;
  105.         }
  106.  
  107.         if (isPrime(leftPrime)) {
  108.             return leftPrime;
  109.         } else {
  110.             return rightPrime;
  111.         }
  112.     }
  113.  
  114.     public static boolean isPrime(int number) {
  115.         if (number < 2) {
  116.             return false;
  117.         }
  118.  
  119.         for (int i = 2; i <= Math.sqrt(number); i++) {
  120.             if (number % i == 0) {
  121.                 return false;
  122.             }
  123.         }
  124.         return true;
  125.     }
  126.  
  127.     public static void printNearestPrime() {
  128.         System.out.println("7.3.6.\n" + "Please type in a prime number, and I will show you the nearest prime for this.");
  129.         int number = extra.Console.readInt();
  130.         System.out.println("The nearest prime number is " + nearestPrime(number));
  131.     }
  132.  
  133.     public static void printIntegersBetween() {
  134.         System.out.print("7.3.8. \nPlease type in two numbers: " + "\nFirst number:");
  135.         double number1 = extra.Console.readDouble();
  136.         System.out.print("Second number: ");
  137.         double number2 = extra.Console.readDouble();
  138.  
  139.         double min = (number1 < number2) ? number1 : number2;
  140.         double max = (number1 < number2) ? number2 : number1;
  141.  
  142.         for (int i = (int) min + 1; i < max; i++) {
  143.             System.out.print(i + ", ");
  144.         }
  145.     }
  146.  
  147.     public static int sumOfNumbers(int n) {
  148.         int sum = 0;
  149.         int number = n;
  150.  
  151.         while (number <= 0) {
  152.             System.out.println("Wrong number, type another one!");
  153.             number = extra.Console.readInt();
  154.         }
  155.  
  156.         for (int i = 1; i <= n; i++) {
  157.             sum += i;
  158.         }
  159.         return sum;
  160.     }
  161.  
  162.     public static void printSumOfNumbers() {
  163.         System.out.print("7.3.13. \nThis program prints out the sum of the first n numbers\nN: ");
  164.         int n = extra.Console.readInt();
  165.         System.out.println("The sum of the first " + n + " numbers is: " + sumOfNumbers(n));
  166.     }
  167.  
  168.     public static void printPrimesBetweenTwoNumbers() {
  169.         System.out.print("7.3.15. \nThis program prints out the prime numbers, between two numbers.\nFirst number: ");
  170.         int first = extra.Console.readInt();
  171.         System.out.println("Second number: ");
  172.         int second = extra.Console.readInt();
  173.  
  174.         int min = (first < second) ? first : second;
  175.         int max = (first < second) ? second : first;
  176.  
  177.         for (int i = min; i <= max; i++) {
  178.             if (isPrime(i)) {
  179.                 System.out.print(i + ", ");
  180.             }
  181.         }
  182.     }
  183.  
  184.     public static void graphics(int row, int column, char k) {
  185.         for (int i = 0; i < row; i++) {
  186.             for (int j = 0; j < column; j++) {
  187.                 System.out.print(k);
  188.             }
  189.             System.out.println();
  190.         }
  191.     }
  192.  
  193.     public static void asciiGraphics() {
  194.         graphics(5, 3, '+');
  195.         graphics(3, 10, '*');
  196.     }
  197.  
  198.     public static void firstLastRow(int width) {
  199.         for (int i = 0; i < width; i++) {
  200.             System.out.print('*');
  201.         }
  202.         System.out.println("");
  203.     }
  204.  
  205.     public static void asciiGraphics2(int row, int column, char k) {
  206.         firstLastRow(column);
  207.         for (int i = 0; i < row - 2; i++) {
  208.             for (int j = 0; j < column; j++) {
  209.                 if (j == 0 || j == column - 1) {
  210.                     System.out.print('*');
  211.                 } else {
  212.                     System.out.print(k);
  213.                 }
  214.             }
  215.             System.out.println("");
  216.         }
  217.         firstLastRow(column);
  218.     }
  219.  
  220.     public static void printASCIIGraphics2() {
  221.         asciiGraphics2(5, 15, '-');
  222.     }
  223.  
  224.     public static long ackermannFunction(long number1, long number2) {
  225.         if (number1 == 0) {
  226.             return number2 + 1;
  227.         } else if (number2 == 0) {
  228.             return ackermannFunction(number1 - 1, 1);
  229.         } else {
  230.             return ackermannFunction(number1 - 1, ackermannFunction(number1, number2 - 1));
  231.         }
  232.     }
  233.  
  234.     public static void printAckermannFunction() {
  235.         System.out.print("The Ackermann function with two numbers:\nFirst number: ");
  236.         int number1 = extra.Console.readInt();
  237.         System.out.print("Second number: ");
  238.         int number2 = extra.Console.readInt();
  239.         System.out.println("The result with " + number1
  240.                 + " and " + number2 + " is: " + ackermannFunction(number1, number2));
  241.     }
  242.  
  243.     public static long getHanoiNumberOfStepsRequired(int numberOfDisks) {
  244.         if (numberOfDisks == 1) {
  245.             return 1;
  246.         } else {
  247.             return (long) (getHanoiNumberOfStepsRequired(numberOfDisks - 1)
  248.                     + (Math.pow(2, numberOfDisks - 1)));
  249.         }
  250.     }
  251.  
  252.     public static void printHanoiSolution() {
  253.         int disks;
  254.         do {
  255.             System.out.print("Please type in the number of disks (it should be a positive number): ");
  256.             disks = extra.Console.readInt();
  257.         } while (disks <= 0);
  258.  
  259.         System.out.println("The number of required steps with " + disks
  260.                 + " disks is " + getHanoiNumberOfStepsRequired(disks));
  261.     }
  262.  
  263.     public static int[] buildAnArray() {
  264.         System.out.println("Let's build an array with ten numbers: ");
  265.         int[] numbers = new int[10];
  266.  
  267.         for (int i = 0; i < 10; i++) {
  268.             System.out.print("Type in the " + (i + 1) + ". number: ");
  269.             numbers[i] = extra.Console.readInt();
  270.         }
  271.         return numbers;
  272.     }
  273.  
  274.     public static int findMinRecursively(int[] numbers, int n) {
  275.         if (n == 1) {
  276.             return numbers[n - 1];
  277.         }
  278.         return Math.min(numbers[n - 1], findMinRecursively(numbers, n - 1));
  279.     }
  280.  
  281.     public static void printMinOfAnArray() {
  282.         System.out.println("This program prints out the minimum of an array.");
  283.         int[] numbers = buildAnArray();
  284.         System.out.println("The minimum from the array's elements is: " + findMinRecursively(numbers, numbers.length));
  285.     }
  286.  
  287.     public static int findSumRecursively(int[] numbers, int n) {
  288.         if (n <= 0) {
  289.             return 0;
  290.         } else {
  291.             return findSumRecursively(numbers, n - 1) + numbers[n - 1];
  292.         }
  293.     }
  294.  
  295.     public static void printSumOfAnArray() {
  296.         System.out.println("This program prints out the sum of an array's elements.");
  297.         int[] numbers = buildAnArray();
  298.         System.out.println("The sum of the array's elements is: " + findSumRecursively(numbers, numbers.length));
  299.     }
  300.  
  301.     public static int findTargetIndexRecursively(int[] numbers, int target) {
  302.  
  303.         int middleIndex = (numbers.length - 1) / 2;
  304.  
  305.         if (numbers[middleIndex] == target) {
  306.             return middleIndex;
  307.         } else if (numbers[middleIndex] > target) {
  308.             return findTargetIndexRecursively(Arrays.copyOfRange(numbers, 0, middleIndex - 1), target);
  309.         } else {
  310.             return findTargetIndexRecursively(Arrays.copyOfRange(numbers, middleIndex + 1, numbers.length - 1), target);
  311.         }
  312.     }
  313.  
  314.     public static int[] sortAnArray(int[] numbers) {
  315.         int temp;
  316.  
  317.         for (int i = 1; i < numbers.length; i++) {
  318.             for (int j = i; j > 0; j--) {
  319.                 if (numbers[j] < numbers[j - 1]) {
  320.                     temp = numbers[j];
  321.                     numbers[j] = numbers[j - 1];
  322.                     numbers[j - 1] = temp;
  323.                 }
  324.             }
  325.         }
  326.         return numbers;
  327.     }
  328.  
  329.     public static void printTargetNumbersPlace() {
  330.         System.out.println("This program prints out the location of a target number in an array:");
  331.         int[] numbers = buildAnArray();
  332.         int placeOfTheNumber = findTargetIndexRecursively(sortAnArray(numbers), numbers.length) + 1;
  333.         if (placeOfTheNumber >= 0) {
  334.             System.out.println("The target number is the " + placeOfTheNumber + ". number in the array.");
  335.         } else {
  336.             System.out.println("The target number is not in the array.");
  337.         }
  338.     }
  339. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement