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 |
Re:这是我的源代码,但是运行超时,请高手帮忙改一下。In Reply To:这是我的源代码,但是运行超时,请高手帮忙改一下。 Posted by:huatao at 2008-03-23 10:17:19 > #include <iostream> > #include <math.h> > using namespace std; > > long factorial(int n) > { > int i; > long result = 1; > for (i=1; i<=n; i++) > result *= i; > return result; > } > > long C(int n, int m) > { > return factorial(n) / factorial(m) / factorial(n-m); > } > > long f(int n) > { > if (n==1 || n==2) > return 1; > if (n==3) > return 4; > int m = C(n, 2); > int p = pow(2, m); > long result = p; > int i; > for (i=1; i<n; i++) //递归 > { > result -= C(n, i)*f(i); > } > return result; > } > > int main() > { > int n; > cin>>n; > long result; > while (n!=0) > { > result = f(n); > cout<<result<<endl; > cin>>n; > } > return 0; > } > 主要是中间的递归如何改成递推式不会。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator