POJ 3742 Equivalent Polynomial java

POJ 3742 Equivalent Polynomial java

开始自己写个C(n,m) RE... 后来改成递推 AC...
另外就是while里面一定要用while(cin.hasNext)???不能用cin.hasNextInt()???用了就RE...丫的。。。

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

public   class  Main  {
    
static int n;
    
static BigInteger t=new BigInteger("1");
    
static BigInteger c[][] = new BigInteger [210][210];

    
/**//*
    static BigInteger C(int n,int m)
    {
        if(m==0||m==n)
            return BigInteger.ONE;
        BigInteger res=new BigInteger("1");
        int i;
        for(i=n;i>=n-m+1;i--)
            res=res.multiply(BigInteger.valueOf(i));
        for(i=m;i>=1;i--)
            res=res.divide(BigInteger.valueOf(i));
        return res;
    }
    
*/


    
static int a[]=new int[202];
    
static BigInteger ans[]=new BigInteger [202];

    
/** *//**
     * 
@param args the command line arguments
     
*/

    
public static void main(String[] args) {
        
for(int i=0;i<=200;i++) c[i][0]=c[i][i]=BigInteger.ONE;
        
for(int i=2;i<=200;i++)
        
{
            
for(int j=1;j<i;j++)
            
{
                c[i][j]
=c[i-1][j].add(c[i-1][j-1]);
            }

        }

        Scanner cin 
= new Scanner (new BufferedInputStream(System.in));
        
while(cin.hasNext())
        
{

            n
=cin.nextInt();
            t
=cin.nextBigInteger();
            
int i,j;
            
for(i=0;i<=n;i++)
                a[i]
=cin.nextInt();
            
for(i=0;i<=n;i++)
                ans[i]
=BigInteger.ZERO;

            
for(i=0;i<=n;i++)
                
for(j=i;j<=n;j++)
                   
if(j-i<i)
                    ans[i]
=ans[i].add(c[j][j-i].multiply(t.pow(j-i)).multiply(BigInteger.valueOf(a[j])));
                   
else
                    ans[i]
=ans[i].add(c[j][i].multiply(t.pow(j-i)).multiply(BigInteger.valueOf(a[j])));
            
for(i=0;i<n;i++)
            
{
                System.out.print(ans[i]);
                System.out.print(
" ");
            }

             System.out.println(ans[n]);

            
/**//*
            String res=new String ("");
            for(i=0;i<n;i++)
            {
                res+=ans[i].toString();
                res+=" ";
            }
            res+=ans[n].toString();
            System.out.print(res);
            System.out.println();
             * 
*/


       }

 
    }

}

你可能感兴趣的:(POJ 3742 Equivalent Polynomial java)