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();
+ }
+}