diff --git a/lessons1/src/Digits.java b/lessons1/src/Digits.java new file mode 100644 index 0000000..e1f3e0d --- /dev/null +++ b/lessons1/src/Digits.java @@ -0,0 +1,13 @@ + +public class Digits { + private static final String[] word = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; + + public static void toWord(int digit){ + try { + System.out.println(digit + " - " + word[digit]); + } + catch (IndexOutOfBoundsException e){ + System.out.println("Number is not a digit"); + } + } +} diff --git a/lessons1/src/Factorial.java b/lessons1/src/Factorial.java new file mode 100644 index 0000000..058ba3a --- /dev/null +++ b/lessons1/src/Factorial.java @@ -0,0 +1,27 @@ + +public class Factorial { + + private static final int MAX_NUMBER = 20; + + public static long getFactorial(int number){ + if(number > MAX_NUMBER) { + System.out.println("Number must be in the range [0, " + MAX_NUMBER +"]."); + } + else if(number < 0){ + System.out.println("Number must be positive"); + } + else{ + return calculateFactorial(number); + } + return 0; + } + + private static long calculateFactorial(int number){ + if(number == 0){ + return 1; + } + else { + return number * calculateFactorial(number - 1); + } + } +} diff --git a/lessons1/src/FibonacciSequence.java b/lessons1/src/FibonacciSequence.java new file mode 100644 index 0000000..735ffa3 --- /dev/null +++ b/lessons1/src/FibonacciSequence.java @@ -0,0 +1,32 @@ + +public class FibonacciSequence { + private int[] fibonacciSequence; + + FibonacciSequence(int sequenceLength){ + fibonacciSequence = new int[sequenceLength]; + create(); + } + + private void create(){ + fibonacciSequence[0] = 1; + fibonacciSequence[1] = 1; + + for(int i = 2; i < fibonacciSequence.length; i++){ + fibonacciSequence[i] = fibonacciSequence[i - 1] + fibonacciSequence[i - 2]; + } + } + + public void outputFibonacciSequence(){ + System.out.print("First " + fibonacciSequence.length + " fibonacci number: "); + for(int fibonacciNumber : fibonacciSequence){ + System.out.print(fibonacciNumber + " "); + } + System.out.println(); + } + + public int[] getFibonacciSequence() { + return fibonacciSequence; + } +} + + diff --git a/lessons1/src/Main.java b/lessons1/src/Main.java new file mode 100644 index 0000000..a2cdca2 --- /dev/null +++ b/lessons1/src/Main.java @@ -0,0 +1,34 @@ +import java.util.Scanner; + +public class Main { + + public static void main(String args[]){ + Scanner scanner = new Scanner(System.in); + String menu = "\nEnter number to select operation " + + "\n 1. Calculate the factorial " + + "\n 2. Output the Fibonacci sequence " + + "\n 3. Convert digit to word" + + "\n Press another number for exit"; + + while(true){ + System.out.println(menu); + switch (scanner.nextInt()){ + case 1: + System.out.print("Enter the number in the range [0, 20]: "); + int number = scanner.nextInt(); + System.out.println(number + "! = " + Factorial.getFactorial(number)); + break; + case 2: + System.out.print("Enter the size of Fibonacci sequence: "); + new FibonacciSequence(scanner.nextInt()).outputFibonacciSequence(); + break; + case 3: + System.out.print("Enter the digits: "); + Digits.toWord(scanner.nextInt()); + break; + default: + System.exit(0); + } + } + } +}