[Duvida] Combinações e permutações?

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);        
    }
}
1 curtida

Quais são exatamente os testes?
Pela descrição do problema, a entrada do seu programa é n e m, certo? Para quais valores seu programa não funciona?

Dê exemplos de valores para m e n que seu programa apresente o valor errado.

Outros comentários:

  • Onde estão os métodos combinacoes e permutacoes pedido na descrição do problema? Para fatorial você implementou.
  • Repare que as fórmulas na descrição do problema podem ser diretamente convertidas nesses métodos no java.
  • Por que a variável é chamada r se na descrição é chamada de m ?