| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么会编译错误呀(java),不是很懂,帮忙修改!!谢谢import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
static BigInteger S[][];
public static int gcd(int n,int m)
{
if(m==0)return n;
return gcd(m,n%m);
}
public static int cm(int n,int m)
{
int ans,i,k,i0,n0;
if(m>n-m) m=n-m;
ans=1;
for(i=1;i<=m;i++,n--)
{
k=gcd(i,n);i0=i;n0=n;
if(k>1){i0=i/k;n0=n/k;}
ans=ans/i0*n0;
}
return ans;
}
public static BigInteger recur(int n,int k)
{
if(S[n][k]!=BigInteger.ZERO)return S[n][k];
if(S[n-1][k-1]==BigInteger.ZERO)S[n-1][k-1]=recur(n-1,k-1);
if(S[n-1][k]==BigInteger.ZERO)S[n-1][k]=recur(n-1,k);
S[n][k]=S[n-1][k-1].add(S[n-1][k].multiply(k));
return S[n][k];
}//public
public static void main(String[] args)
{ S=new BigInteger[40][40];
int i,j,k;
int jiec[11];
jiec[1]=1;
for(i=2;i<=10;i++)
jiec[i]=jiec[i-1]*i;
for(i=1;i<=29;i++)
{S[i][1]= BigInteger.ONE;
S[i][i]= BigInteger.ONE;
}
for(i=3;i<=29;i++)
{
for(j=2;j<i;j++)
{
if(S[i-1][j-1]==BigInteger.ZERO)S[i-1][j-1]=recur(i-1,j-1);
if(S[i-1][j]==BigInteger.ZERO)S[i-1][j]=recur(i-1,j);
S[i][j]=S[i-1][j-1].add(S[i-1][j].multiply(j));
}
}
Scanner sc = new Scanner(System.in);
//stirling();
while(sc.hasNextInt())
{ int n = sc.nextInt();
int m = sc.nextInt();
if(n==0&&m==0)break;
BigInteger ans=BigInteger.ZERO;
for(i=1;i<=n;i++)
{k=jiec[i]*cm(n,i);
ans=ans.add(S(m,i).multiply(k));
}
System.out.println(ans);
}
}
}//public
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator