K Candy Store
The following is the solution to Hacker Rank problem K Candy Store using Java. For solutions to other Hacker Rank Problem visit my page HackerRank, alternatively try searching for the problem in my blog.
Score: 5/5
Score: 5/5
/**
*
*/
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.io.PrintWriter;
import
java.math.BigInteger;
import
java.util.StringTokenizer;
/**
* @author Arun.G
*
*/
public class Solution {
BufferedReader reader;
StringTokenizer tokenizer;
PrintWriter out;
public BigInteger
factorial(BigInteger n)
{
if(n.compareTo(BigInteger.ONE)==0
|| n.compareTo(BigInteger.ZERO)==0)
return BigInteger.ONE;
else
return
(n.multiply(
factorial(n.subtract(BigInteger.ONE)) ));
}
public void solve() throws IOException {
int T = nextInt();
for (int count = 0; count
< T; count++) {
int N = nextInt();
int K = nextInt();
BigInteger nCk =
BigInteger.ONE;
nCk = factorial(new
BigInteger((N+K-1)+"")).divide(factorial(new BigInteger(K+"")).multiply(factorial(
BigInteger.valueOf(N-1))));
if(nCk.toString().length()>9)
{
System.out.println(new
BigInteger(nCk.toString().substring(nCk.toString().length()-9,nCk.toString().length())));
}
else
{
System.out.println(nCk);
}
}
}
/**
* @param args
*/
public static void main(String[]
args) {
new
KCandyStore().run();
}
public void run() {
try {
reader = new BufferedReader(
new InputStreamReader(System.in));
tokenizer = null;
out = new
PrintWriter(System.out);
solve();
reader.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
int nextInt() throws IOException {
return Integer.parseInt(nextToken());
}
long nextLong() throws IOException {
return Long.parseLong(nextToken());
}
double nextDouble() throws IOException {
return Double.parseDouble(nextToken());
}
String nextToken() throws IOException {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
tokenizer = new StringTokenizer(reader.readLine());
}
return tokenizer.nextToken();
}
}
|