diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HomeTask/HomeTask.iml b/HomeTask/HomeTask.iml new file mode 100644 index 0000000..37cc804 --- /dev/null +++ b/HomeTask/HomeTask.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HomeTask/src/DigitToStringConverter.java b/HomeTask/src/DigitToStringConverter.java new file mode 100644 index 0000000..915f98b --- /dev/null +++ b/HomeTask/src/DigitToStringConverter.java @@ -0,0 +1,18 @@ + +public class DigitToStringConverter { + private byte digit = 0; + private String[] words = {"zero", "one", "two", "three", "four", + "five", "six", "seven", "eight", "nine"}; + + public DigitToStringConverter(byte digit) { + this.digit = digit; + } + + public void convert() { + try{ + System.out.println(words[digit]); + } catch (ArrayIndexOutOfBoundsException e){ + System.out.println("Digit must be between 0 and 9"); + } + } +} diff --git a/HomeTask/src/Factorial.java b/HomeTask/src/Factorial.java new file mode 100644 index 0000000..b055b4a --- /dev/null +++ b/HomeTask/src/Factorial.java @@ -0,0 +1,16 @@ + +public class Factorial { + private int numberToCalculate = 0; + + public Factorial(int numberToCalculate) { + this.numberToCalculate = numberToCalculate; + } + + public void calculate() { + long result = 1; + for (int i = 1; i <= numberToCalculate; i++) { + result *= i; + } + System.out.println(result); + } +} diff --git a/HomeTask/src/FibonacciSequence.java b/HomeTask/src/FibonacciSequence.java new file mode 100644 index 0000000..21c6e26 --- /dev/null +++ b/HomeTask/src/FibonacciSequence.java @@ -0,0 +1,22 @@ +import java.util.ArrayList; +import java.util.List; + +public class FibonacciSequence { + private int numberOfTerms = 0; + private List sequence = new ArrayList(); + + public FibonacciSequence(int numberOfTerms) { + this.numberOfTerms = numberOfTerms; + } + + public void displaySequence() { + sequence.add((long) 0); + sequence.add((long) 1); + for (int i = 2; i < numberOfTerms; i++) { + sequence.add(sequence.get(i - 1) + sequence.get(i - 2)); + } + for (Long term : sequence) { + System.out.print(term + " "); + } + } +} diff --git a/HomeTask/src/Solution.java b/HomeTask/src/Solution.java new file mode 100644 index 0000000..10adade --- /dev/null +++ b/HomeTask/src/Solution.java @@ -0,0 +1,87 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Solution { + public static void main(String argv[]) throws IOException { + System.out.println("Hello! What do you want to do?"); + System.out.println("1: calculate the factorial of a number"); + System.out.println("2: display the Fibonacci sequence"); + System.out.println("3: display digit as a string"); + System.out.println("4: nothing"); + + BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); + byte requiredAction; + try { + requiredAction = Byte.parseByte(consoleReader.readLine()); + } catch (NumberFormatException e) { + System.out.println("You must enter a digit!"); + return; + } + + switch (requiredAction) { + case 1: + calculateFactorial(); + break; + case 2: + displayFibonacciSequence(); + break; + case 3: + convertDigitToString(); + break; + case 4: + System.out.println("Good bye"); + break; + default: + throw new IllegalArgumentException("Digit must be between 1 and 4"); + } + } + + private static void convertDigitToString() throws IOException { + System.out.println("Enter what digit do you want to convert"); + + BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); + byte digitToConvert; + try { + digitToConvert = Byte.parseByte(consoleReader.readLine()); + } catch (NumberFormatException e) { + System.out.println("You must enter a digit!"); + return; + } + + DigitToStringConverter converter = new DigitToStringConverter(digitToConvert); + converter.convert(); + } + + private static void displayFibonacciSequence() throws IOException { + System.out.println("Enter the number of terms of the sequence"); + + BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); + int numberOfTerms; + try { + numberOfTerms = Integer.parseInt(consoleReader.readLine()); + } catch (NumberFormatException e) { + System.out.println("You must enter a number!"); + return; + } + + FibonacciSequence fibonacciSequence = new FibonacciSequence(numberOfTerms); + fibonacciSequence.displaySequence(); + } + + private static void calculateFactorial() throws IOException { + System.out.println("Enter the number to calculate"); + + BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); + int numberToCalculate; + try { + numberToCalculate = Integer.parseInt(consoleReader.readLine()); + } catch (NumberFormatException e) { + System.out.println("You must enter a number!"); + return; + } + + Factorial factorial = new Factorial(numberToCalculate); + factorial.calculate(); + } +}