Tenho um problema pra resolver porém não passa nos testes do Mooshak pq o professor disse que não tem a condição: combinações de m elementos, n a n (m>=n).
o problema proposto é o seguinte
Faça um programa que calcule a quantidade de combinações e permutações possíveis de um conjunto de elementos. Deve introduzir a quantidade total de elementos (m) e a quantidade a agrupar (n).
As fórmulas são as seguintes:
Combinações de m elementos, n a n (m>=n).
m!
C(m,n) = -----------
n! (m-n)!
Permutações de m elementos, n a n (m>=n).
m!
P(m,n) = ---------
(m-n)!
Cada resultado deverá aparecer em linhas separadas e no seguinte formato:
C(5,2)=10
P(5,2)=20
Observação: Implemente os seguintes métodos:
fatorial()
combinacoes()
permutacoes()
esse é o meu código, alguém poderia me ajudar a melhora-lo para que passe nestes testes?
import java.util.Scanner;
public class Combinacoes {
private static void print(String str) {
System.out.print(str);
}
private static void println(String str) {
System.out.println(str);
}
public static int fatorial(int n) {
//1
int fact = 1;
//2
for (int i = 1; i <= n; i++) {
//3
fact = fact * i;
}
//4
return fact;
}
public static void main(String args[]) {
int n, r;
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
r = scan.nextInt();
int ncr = (fatorial(n) / (fatorial(n - r) * fatorial(r)));
int npr = (fatorial(n) / (fatorial(n - r)));
println("C("+n+ "," +r+ ")="+ ncr);
println("P("+n+ "," +r+ ")=" + npr);
}
}