题目
源地址:
http://poj.org/problem?id=1306
理解
高精度阶乘的题目,再次用java水掉= =。
代码
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
while(true){
int a=cin.nextInt();
int b=cin.nextInt();
if(a==0 && b==0)
return;
BigInteger fir=factor(a);
BigInteger sec=factor(a-b);
BigInteger third=factor(b);
BigInteger result=fir.divide(sec).divide(third);
System.out.println(a+" things taken "+b+" at a time is "+result.toString()+" exactly.");
}
}
public static BigInteger factor(int n){
BigInteger goal=BigInteger.ONE;
for(int i=n;i>=2;i--){
goal=goal.multiply(new BigInteger(String.valueOf(i)) );
}
return goal;
}
}
更新日志
- 2014年07月18日 已AC。