Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CalCombinatorio {
- /**
- * Calcular o factorial de um número
- *
- *
- * @param num número inteiro não negativo
- * @return o valor do factorial do num
- */
- private static long factorial(long num) {
- long fact = 1;
- for (long i = num; i > 1; i = i - 1) {
- fact = fact * i;
- }
- return fact;
- }
- /**
- * Calcula o combinações de n p a p
- *
- *
- * @param n número inteiro não negativo
- * @param p número inteiro não negativo
- * @return o valor combinações de n p a p ou -1 caso n<p
- */
- public static long combinacoes(long n, long p) {
- if (n < p) {
- return -1;
- }
- return factorial(n) / (factorial(p) * factorial(n - p));
- }
- /**
- * Calcula o arranjos de n p a p
- *
- *
- * @param n número inteiro não negativo
- * @param p número inteiro não negativo
- * @return o valor arranjos com n elementos distintos, agrupados p a p ou -1
- * caso n<p
- */
- public static long arranjos(long n, long p) {
- if (n < p) {
- return -1;
- }
- return factorial(n) / (factorial(n - p));
- }
- /**
- * Calcula o numero de permutações de num
- *
- * @param num número inteiro não negativo
- * @return o num de permutações de num
- */
- public static long permutacoes(long num) {
- return factorial(num);
- }
- }
- import java.util.Formatter;
- import java.util.Scanner;
- /**
- *
- * @author Tiago
- */
- public class TesteCalcCombinatorio {
- public static void main(String[] args) {
- // TODO code application logic here
- long n1, n2, res;
- Formatter obj1 = new Formatter(System.out);
- Scanner obj2 = new Scanner(System.in);
- //leitura dos valores
- do {
- obj1.format("%s%n", "Escreva n");
- n1 = obj2.nextLong();
- obj1.format("%s%n", "Escreva p");
- n2 = obj2.nextLong();
- } while (n2 < 0 || n1 < 0);
- res = CalCombinatorio.permutacoes(n1);
- obj1.format("%s%d%n", "O numero de permutacoes de "+n1+" e': ", res);
- obj1.format("%n");
- res = CalCombinatorio.permutacoes(n2);
- obj1.format("%s%d%n", "O numero de permutacoes de "+n2+" e': ", res);
- obj1.format("%n");
- res = CalCombinatorio.combinacoes(n1, n2);
- if (res != -1) {
- obj1.format("%s%d%n", "Nº de combinacoes = ", res);
- } else {
- obj1.format("ERRO!");
- }
- obj1.format("%n");
- res = CalCombinatorio.arranjos(n1, n2);
- if (res != -1) {
- obj1.format("%s%d%n", "Nº de arranjos = ", res);
- } else {
- obj1.format("ERRO!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement