UVa 11375 - Matches

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2370

难题锻炼思维,水题锻炼细心。

这个题有两个需要注意的地方

1,关于前导零

2,高精度

代码:

import java.math.BigInteger;
import java.util.Scanner; public class Main { /**
* @param args
*/
static final int N=2005;
public static void main(String[] args) {
// TODO Auto-generated method stub
long c[]={0,0,1,1,1,3,3,1};
//long [] c = new long[8];
BigInteger [] sum=new BigInteger[N];
sum[0]=BigInteger.ONE;
for(int i=1;i<N;++i){
sum[i]=BigInteger.ZERO;
}
for(int i=2;i<N;++i){
for(int j=2;j<=7&&i-j>=0;++j){
sum[i]=sum[i].add(sum[i-j].multiply(BigInteger.valueOf(c[j])));
}
if(i==6){
sum[i]=sum[i].subtract(BigInteger.ONE);
}
}
sum[0]=BigInteger.ZERO;
sum[6]=sum[6].add(BigInteger.ONE);
for(int i=1;i<N;++i){
sum[i]=sum[i].add(sum[i-1]);
}
int k;
Scanner in = new Scanner(System.in);
while(in.hasNext()){
k=in.nextInt();
System.out.println(sum[k]);
}
in.close();
} }
上一篇:循环中的continue功能


下一篇:iOS多线程开发资源抢夺和线程间的通讯问题