Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
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
6 changes: 6 additions & 0 deletions 6 DIRECTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,21 +118,27 @@
* [AmicableNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/AmicableNumber.java)
* [Area](https://github.com/TheAlgorithms/Java/blob/master/Maths/Area.java)
* [Average](https://github.com/TheAlgorithms/Java/blob/master/Maths/Average.java)
* [Ceil](https://github.com/TheAlgorithms/Java/blob/master/Maths/Ceil.java)
* [Combinations](https://github.com/TheAlgorithms/Java/blob/master/Maths/Combinations.java)
* [Factorial](https://github.com/TheAlgorithms/Java/blob/master/Maths/Factorial.java)
* [FactorialRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FactorialRecursion.java)
* [FibonacciNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/FibonacciNumber.java)
* [FindMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMax.java)
* [FindMaxRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMaxRecursion.java)
* [FindMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMin.java)
* [FindMinRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMinRecursion.java)
* [Floor](https://github.com/TheAlgorithms/Java/blob/master/Maths/Floor.java)
* [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java)
* [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java)
* [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.java)
* [MaxValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MaxValue.java)
* [MinValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MinValue.java)
* [NumberOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/NumberOfDigits.java)
* [PalindromeNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PalindromeNumber.java)
* [ParseInteger](https://github.com/TheAlgorithms/Java/blob/master/Maths/ParseInteger.java)
* [PerfectCube](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectCube.java)
* [PerfectNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectNumber.java)
* [PerfectSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectSquare.java)
* [Pow](https://github.com/TheAlgorithms/Java/blob/master/Maths/Pow.java)
* [PowRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/PowRecursion.java)
* [PrimeCheck](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeCheck.java)
Expand Down
32 changes: 32 additions & 0 deletions 32 Maths/Ceil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package Maths;

public class Ceil {
public static void main(String[] args) {
assert ceil(10) == Math.ceil(10);
assert ceil(-10) == Math.ceil(-10);
assert ceil(10.0) == Math.ceil(10.0);
assert ceil(-10.0) == Math.ceil(-10.0);
assert ceil(10.1) == Math.ceil(10.1);
assert ceil(-10.1) == Math.ceil(-10.1);
assert ceil(0) == Math.ceil(0);
assert ceil(-0) == Math.ceil(-0);
assert ceil(0.0) == Math.ceil(0.0);
assert ceil(-0.0) == Math.ceil(-0.0);
}

/**
* Returns the smallest (closest to negative infinity)
*
* @param number the number
* @return the smallest (closest to negative infinity) of given {@code number}
*/
public static double ceil(double number) {
if (number - (int) number == 0) {
return number;
} else if (number - (int) number > 0) {
return (int) (number + 1);
} else {
return (int) number;
}
}
}
37 changes: 37 additions & 0 deletions 37 Maths/Combinations.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package Maths;

/**
* @see <a href="https://en.wikipedia.org/wiki/Combination">Combination</a>
*/
public class Combinations {
public static void main(String[] args) {
assert combinations(1, 1) == 1;
assert combinations(10, 5) == 252;
assert combinations(6, 3) == 20;
assert combinations(20, 5) == 15504;
}

/**
* Calculate of factorial
*
* @param n the number
* @return factorial of given number
*/
public static long factorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("number is negative");
}
return n == 0 || n == 1 ? 1 : n * factorial(n - 1);
}

/**
* Calculate combinations
*
* @param n first number
* @param k second number
* @return combinations of given {@code n} and {@code k}
*/
public static long combinations(int n, int k) {
return factorial(n) / (factorial(k) * factorial(n - k));
}
}
35 changes: 14 additions & 21 deletions 35 Maths/Factorial.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,27 @@
package Maths;
import java.util.*; //for importing scanner

public class Factorial {
public static void main(String[] args) { //main method
int n = 1;
Scanner sc= new Scanner(System.in);
System.out.println("Enter Number");
n=sc.nextInt();
System.out.println(n + "! = " + factorial(n));
}

//Factorial = n! = n1 * (n-1) * (n-2)*...1
/* Driver Code */
public static void main(String[] args) {
assert factorial(0) == 1;
assert factorial(1) == 1;
assert factorial(5) == 120;
assert factorial(10) == 3628800;
}

/**
* Calculate factorial N
* Calculate factorial N using iteration
*
* @param n the number
* @return the factorial of {@code n}
*/
public static long factorial(int n) {
// Using recursion
try {
if (n == 0) {
return 1; // if n = 0, return factorial of n;
}else {
return n*factorial(n-1); // While N is greater than 0, call the function again, passing n-1 (Principle of factoring);
}
}catch (ArithmeticException e) {
System.out.println("Dont work with less than 0");
}
return n;
if (n < 0) {
throw new IllegalArgumentException("number is negative");
}
long factorial = 1;
for (int i = 1; i <= n; factorial *= i, ++i) ;
return factorial;
}
}
32 changes: 32 additions & 0 deletions 32 Maths/Floor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package Maths;

public class Floor {
public static void main(String[] args) {
assert floor(10) == Math.floor(10);
assert floor(-10) == Math.floor(-10);
assert floor(10.0) == Math.floor(10.0);
assert floor(-10.0) == Math.floor(-10.0);
assert floor(10.1) == Math.floor(10.1);
assert floor(-10.1) == Math.floor(-10.1);
assert floor(0) == Math.floor(0);
assert floor(-0) == Math.floor(-0);
assert floor(0.0) == Math.floor(0.0);
assert floor(-0.0) == Math.floor(-0.0);
}

/**
* Returns the largest (closest to positive infinity)
*
* @param number the number
* @return the largest (closest to positive infinity) of given {@code number}
*/
public static double floor(double number) {
if (number - (int) number == 0) {
return number;
} else if (number - (int) number > 0) {
return (int) number;
} else {
return (int) number - 1;
}
}
}
44 changes: 44 additions & 0 deletions 44 Maths/LucasSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package Maths;

/**
* https://en.wikipedia.org/wiki/Lucas_number
*/
public class LucasSeries {
public static void main(String[] args) {
assert lucasSeries(1) == 2 && lucasSeriesIteration(1) == 2;
assert lucasSeries(2) == 1 && lucasSeriesIteration(2) == 1;
assert lucasSeries(3) == 3 && lucasSeriesIteration(3) == 3;
assert lucasSeries(4) == 4 && lucasSeriesIteration(4) == 4;
assert lucasSeries(5) == 7 && lucasSeriesIteration(5) == 7;
assert lucasSeries(6) == 11 && lucasSeriesIteration(6) == 11;
assert lucasSeries(11) == 123 && lucasSeriesIteration(11) == 123;

}

/**
* Calculate nth number of lucas series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, ....) using recursion
*
* @param n nth
* @return nth number of lucas series
*/
public static int lucasSeries(int n) {
return n == 1 ? 2 : n == 2 ? 1 : lucasSeries(n - 1) + lucasSeries(n - 2);
}

/**
* Calculate nth number of lucas series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, ....) using iteration
*
* @param n nth
* @return nth number of lucas series
*/
public static int lucasSeriesIteration(int n) {
int previous = 2;
int current = 1;
for (int i = 1; i < n; i++) {
int next = previous + current;
previous = current;
current = next;
}
return previous;
}
}
27 changes: 27 additions & 0 deletions 27 Maths/PerfectCube.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package Maths;

/**
* https://en.wikipedia.org/wiki/Cube_(algebra)
*/
public class PerfectCube {
public static void main(String[] args) {
assert !isPerfectCube(-1);
assert isPerfectCube(0);
assert isPerfectCube(1);
assert !isPerfectCube(4);
assert isPerfectCube(8);
assert isPerfectCube(27);

}

/**
* Check if a number is perfect cube or not
*
* @param number number to check
* @return {@code true} if {@code number} is perfect cube, otherwise {@code false}
*/
public static boolean isPerfectCube(int number) {
int a = (int) Math.pow(number, 1.0 / 3);
return a * a * a == number;
}
}
25 changes: 25 additions & 0 deletions 25 Maths/PerfectSquare.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package Maths;

/**
* https://en.wikipedia.org/wiki/Perfect_square
*/
public class PerfectSquare {
public static void main(String[] args) {
assert !isPerfectSquare(-1);
assert !isPerfectSquare(3);
assert !isPerfectSquare(5);
assert isPerfectSquare(9);
assert isPerfectSquare(100);
}

/**
* Check if a number is perfect square number
*
* @param number the number to be checked
* @return <tt>true</tt> if {@code number} is perfect square, otherwise <tt>false</tt>
*/
public static boolean isPerfectSquare(int number) {
int sqrt = (int) Math.sqrt(number);
return sqrt * sqrt == number;
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.