Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/com/geekhub/java/lessons/CalculatorFactorial.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.geekhub.java.lessons;

import com.geekhub.java.lessons.exceptions.FactorialOfNegativeNumberException;

public class CalculatorFactorial {

public int getFactorial(int n) throws FactorialOfNegativeNumberException{

if (n < 0) throw new FactorialOfNegativeNumberException();

if (n == 0) return 1;

return n * getFactorial(n - 1);
}
}
22 changes: 22 additions & 0 deletions src/com/geekhub/java/lessons/CalculatorFibonacci.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.geekhub.java.lessons;

public class CalculatorFibonacci {

public int[] getFibonacci(int n) {

if (n <= 0) return new int[0];

int [] fib = new int[n];

fib[0] = 1;
if (n>1) {
fib[1] = 1;
}

for (int i = 2; i < fib.length; i++) {
fib[i] = fib[i-2]+fib[i-1];
}

return fib;
}
}
66 changes: 66 additions & 0 deletions src/com/geekhub/java/lessons/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.geekhub.java.lessons;

import com.geekhub.java.lessons.exceptions.FactorialOfNegativeNumberException;
import com.geekhub.java.lessons.exceptions.NotNumberException;

import java.util.Arrays;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = 0;
int menuItem;
boolean run = true;
while (run) {
printMenu();
if (in.hasNextInt()) {
menuItem = in.nextInt();

switch (menuItem) {
case 1:
CalculatorFactorial calculatorFactorial = new CalculatorFactorial();
try {
System.out.println("input n:");
n = in.nextInt();
System.out.println(n + "! = " + calculatorFactorial.getFactorial(n));
} catch (FactorialOfNegativeNumberException e) {
System.out.println("error: factorial of negative number");
}
break;
case 2:
System.out.println("input n:");
n = in.nextInt();
CalculatorFibonacci calculatorFibonacci = new CalculatorFibonacci();
int[] sequenceFib = calculatorFibonacci.getFibonacci(n);
System.out.println("sequence " + n + " number(s) fibonacci:");
System.out.println(Arrays.toString(sequenceFib));
break;
case 3:
System.out.println("input number:");
n = in.nextInt();
NumberToWord memberToWord = new NumberToWord();
try {
System.out.println(n + " converted to " + memberToWord.toWord(n));
} catch (NotNumberException e) {
System.out.println("value is not number");
}
break;
default:
run = false;
}
} else run = false;
}
}

private static void printMenu() {
System.out.println("==== Menu: ====");
System.out.println("1 - calculate factorial");
System.out.println("2 - calculate fibonacci");
System.out.println("3 - number to word convert");
System.out.println("any other symbol - exit");
System.out.println("===============");
System.out.println("select menu item:");
}
}
34 changes: 34 additions & 0 deletions src/com/geekhub/java/lessons/NumberToWord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.geekhub.java.lessons;

import com.geekhub.java.lessons.exceptions.NotNumberException;

public class NumberToWord {

public String toWord(int n) throws NotNumberException {

switch (n) {
case 0:
return "zero";
case 1:
return "one";
case 2:
return "two";
case 3:
return "three";
case 4:
return "four";
case 5:
return "five";
case 6:
return "six";
case 7:
return "seven";
case 8:
return "eight";
case 9:
return "nine";
default:
throw new NotNumberException();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.geekhub.java.lessons.exceptions;

public class FactorialOfNegativeNumberException extends Exception {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.geekhub.java.lessons.exceptions;

public class NotNumberException extends Exception {
}