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 |
为什么错了帮忙看一下 #include<iostream.h> #include<stdlib.h> #define M 20 int Bit(unsigned long int p) { int bit=0; while(p!=0) { p=p/10; bit++; } return bit; } class Longint { public: Longint() { for(int i=0;i<M;i++) num[i]=0; } Longint operator =(Longint other) { for(int i=0;i<M;i++) num[i]=other.num[i]; return *this; } Longint(int i) { for(int j=0;j<M-1;j++) num[j]=0; num[M-1]=i; } friend Longint operator +(Longint p,Longint other) { Longint p1; int bit=0; for(int i=M-1;i>=0;i--) { p1.num[i]=p.num[i]+other.num[i]+bit; if(p1.num[i]>=1000000000) { p1.num[i]=p1.num[i]-1000000000; bit=1; } else bit=0; } return p1; } friend ostream& operator <<(ostream& out,Longint& p) { int i=0; while(p.num[i]==0&&i<M) i++; if(i==M) out<<0; else { out<<p.num[i]; for(int j=i+1;j<M;j++) { for(int bit=1;bit<=9-Bit(p.num[j]);bit++) out<<0; out<<p.num[j]; } } return out; } private: unsigned long int num[M]; }; Longint tab[52][52]; int main() { Longint a[50]; int i,k,j,t; Longint s; for(i=0;i<52;i++) { tab[i][1]=Longint(1); tab[i][0]=Longint(0); } for(i=0;i<52;i++) { for(k=i+1;k<52;k++) tab[i][k]=Longint(0); } for(i=2;i<52;i++) { for(k=2;k<=i;k++) { s=Longint(0); for(j=1;j<=k;j++) s=s+tab[i-1][k]; for(j=1;j<=2*i-k;j++) s=s+tab[i-1][k-1]; tab[i][k]=s; } } cin>>t; j=0; while(t>=1) { cin>>i>>k; if(i==0&&k==0) cout<<1<<endl; if(k==1) cout<<1<<endl; else if(k>i||k<1) cout<<0<<endl; else cout<<tab[i][k]<<endl; t--; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator