পৃষ্ঠাসমূহ

রবিবার, ১১ জুন, ২০১৭

369 - Combinations

import java.math.BigInteger;
import java.util.*;

public class Main2 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextInt()) {
            String line = scanner.nextLine().trim();
            String[] parts = line.split("\\s+");
            String n = parts[0];
            String r = parts[1];
            if (n.equals("0") && r.equals("0")) break;

            BigInteger N = new BigInteger(n);
            BigInteger R = new BigInteger(r);


            BigInteger upper = new BigInteger("1");
            BigInteger lower = new BigInteger("1");
            BigInteger limit = N.subtract(R);

            BigInteger temp = N;
            while (temp.compareTo(limit) == 1) {
                upper = upper.multiply(temp);
                temp = temp.subtract(new BigInteger("1"));
            }

            temp = R;
            while (temp.compareTo(new BigInteger("0")) == 1) {
                lower = lower.multiply(temp);
                temp = temp.subtract(new BigInteger("1"));
            }

            upper = upper.divide(lower);
            System.out.println(n+" things taken "+r + " at a time is "+upper+" exactly.");
        }
    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন