uva 11375

思路是刘书上的 但是个高精度  java 大数 ~~ 

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

public class Main 
{
	public static void main(String[] args) 
	{
		BigInteger[] f = new BigInteger[2010];  
        int c[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };  
        for(int i = 1; i <= 2000; ++ i)  
            f[i] = new BigInteger("0");  
        f[0] = new BigInteger("1");  
        for(int i = 0; i <= 2000; ++ i)  
            for(int j = 0; j < 10; ++ j)  
                if(!(i == 0 && j == 0) && i + c[j] <= 2000)    
                    f[i + c[j]] = f[i + c[j]].add(f[i]);  
        f[6] = f[6].add(new BigInteger("1"));
        for(int i = 2; i <= 2000; ++ i)  
            f[i] = f[i-1].add(f[i]);  
        Scanner in = new Scanner(System.in);
        while(in.hasNextInt())
        {
        	int n = in.nextInt(); 
            System.out.println(f[n]);  
        }
    }
}





posted @ 2014-03-13 15:33  xlc2845  阅读(132)  评论(0)    收藏  举报