Simple Java program to calculate subfactorial of given non-negative integer.
import java.util.Scanner; // 2018 TheFlyingKeyboard and released under MIT License // theflyingkeyboard.net public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int n; System.out.println("Enter a number: "); n = reader.nextInt(); //Reads integer from keyboard System.out.println("Subfactorial of: " + n + " is equal to: " + subfactorial(n)); } private static double subfactorial(int n){ double subFact = 0; for(int i = 2; i <= n; ++i){ subFact += Math.pow(-1, i) / factorial(i); } return subFact * factorial(n); } private static double factorial(int n){ int fact = 1; for(int i = 2; i <= n; ++i){ fact *= i; } return fact; } }
Java Subfactorial !n