Skip to content

Instantly share code, notes, and snippets.

@jrdalpra
Created February 25, 2016 00:53
Show Gist options
  • Save jrdalpra/bfcd381783027f72a570 to your computer and use it in GitHub Desktop.
Save jrdalpra/bfcd381783027f72a570 to your computer and use it in GitHub Desktop.
OO Factorial
import lombok.AllArgsConstructor;
@SuppressWarnings("serial")
@AllArgsConstructor
public class Factorial extends Number {
private final Integer number;
@Override
public double doubleValue() {
return intValue();
}
@Override
public float floatValue() {
return intValue();
}
@Override
public int intValue() {
if (this.number == 0)
return 1;
return this.number * new Factorial(this.number - 1).intValue();
}
@Override
public long longValue() {
return intValue();
}
@Override
public String toString() {
return Integer.toString(intValue());
}
public static void main(String[] args) {
System.out.println(new Factorial(5));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment