您的位置:首页 > 其它

创新工场笔试题----有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?

2013-09-15 16:04 369 查看
【题目】有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?

代码如下

void Combination(int *a,int index,int n,vector<int>& vec)
{
if (n==0)
{
vector<int>::iterator iter=vec.begin();
for (;iter!=vec.end();++iter)
{
cout<<*iter<<" ";
}
cout<<endl;
}

if(n<0)
return;

for (int i=index;i<4;i++)
{
vec.push_back(a[i]);
Combination(a,i,n-a[i],vec);
vec.pop_back();
}

}

void PrintCombination(int n)
{
int a[4]={1,2,5,10};
vector<int> vec;
Combination(a,0,n,vec);
}

void main()
{
int n;
cin>>n;
cout<<n<<"分钱的组合情况如下:"<<endl;
PrintCombination(n);}


参考/article/2464421.html

测试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐