赞
踩
中秋节,公司分月饼,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人份到最多月饼的个数为Max1,单人分到第二多月饼的个数是Max2,Max1-Max2<=3,。同理,单人分到第n-1多月饼的个数是Max(n-1),单人分到第n多月饼的个数是Max(n),Max(n-1)-Max(n)<=3。请问有多少种分月饼的方法?
输入描述:
第一行输入m n,表示m个员工,n个月饼,m<=n
输出描述:
输出有多少种月饼分法
解题思路:
把n个月饼当做一个线段,划分m次。
int fen(int m, int n, int pre) { if ((m == 0 && n > 0) || (n == 0 && m > 0)) return 0; else if (m==0 && n==0) return 1; int count = 0; for (int i = pre; i <= pre+3; i++) { count += search(m-1, n-i, i); } return count; } int main() { int m, n; cin >> m >> n; if (m > n) return NULL; int count = 0; for (int i=1;i<=n;i++) count += fen(m-1, n-i, i); cout << count << endl; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。