Given two integers - n and r, your task is to calculate the combinatorial nCr.
nCr = n! / r! (n-r)!
The caveat is that you have to write code to do this calculation in minimum number of characters.
UPDATE: The testcases for this problem have been fixed. Please try submitting your solution again.
Input
The first line will be number of testcases T. Then T lines follow, each containing two positive integers - n and r.
output
Print T lines, each line containing the value of nCr.
Constraints
1 <= T <= 100
1 <= r <= n <= 1000
You can assume that the value nCr will fit into a signed 64 bit integer.
Scoring
If your program passes all the testcases, the score will be assigned according to the following formula:
num_chars = length of source code
Score = (1000 - num_chars) / 10
You can understand that you have to reach as close to 100 as possible. Have fun :)
nCr = n! / r! (n-r)!
The caveat is that you have to write code to do this calculation in minimum number of characters.
UPDATE: The testcases for this problem have been fixed. Please try submitting your solution again.
Input
The first line will be number of testcases T. Then T lines follow, each containing two positive integers - n and r.
output
Print T lines, each line containing the value of nCr.
Constraints
1 <= T <= 100
1 <= r <= n <= 1000
You can assume that the value nCr will fit into a signed 64 bit integer.
Scoring
If your program passes all the testcases, the score will be assigned according to the following formula:
num_chars = length of source code
Score = (1000 - num_chars) / 10
You can understand that you have to reach as close to 100 as possible. Have fun :)
Sample Input
1 100 10
Sample Output
17310309456440
Time Limit:
2 sec(s)
for all input files combined.
Memory Limit:
256 MB
Source Limit:
1024 KB
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
class TestClass{
class TestClass{
public static BigInteger fact(int n){
if(n==1) return BigInteger.valueOf(n);
else return BigInteger.valueOf(n).multiply(fact(n-1));
}
public static void main(String args[]) throws Exception{
public static void main(String args[]) throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int c=Integer.parseInt(br.readLine());
for(int i=0;i<c;i++){
String[] p=br.readLine().split(" ");
int n=Integer.parseInt(p[0]),
r=Integer.parseInt(p[1]);
System.out.println(fact(n).divide(fact(r).multiply(fact(n-r))));
}
}
}
0 comments:
Post a Comment