题目描述
中秋节,公司分月饼,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人份到最多月饼的个数为Max1,单人分到第二多月饼的个数是Max2,Max1-Max2<=3,。同理,单人分到第n-1多月饼的个数是Max(n-1),单人分到第n多月饼的个数是Max(n),Max(n-1)-Max(n)<=3。请问有多少种分月饼的方法?
#include <stdio.h>
#include <map>
#include <vector>
#include <iostream>
#include <string>
using namespace std;
class CDivideCake
{
public:
CDivideCake(unsigned int uiMember,unsigned int uiCakeCount,unsigned int uiCakeDiffMax = 3)
:m_uiMemberNum(uiMember),m_uiCakeCount(uiCakeCount),m_uiCakeDiffMax(uiCakeDiffMax)
{
m_uiResCount = 0;
m_pMemberCakeDetail = new unsigned int[uiMember];
if (m_pMemberCakeDetail != NULL)
{
memset(m_pMemberCakeDetail,0x00,uiMember*sizeof(unsigned int));
if (uiCakeCount >= uiMember)
{
unsigned int uiCakeCountNext = uiCakeCount;
unsigned int uiMemberNext = 0;
unsigned int uiCakeMinNext = 1;
unsigned int uiCakeMaxNext = uiCakeCountNext;
DivideCakeForNe

最低0.47元/天 解锁文章
1070

被折叠的 条评论
为什么被折叠?



