您的位置:首页 > 编程语言 > Go语言

2012年Google校园招聘笔试最后一题

2011-10-16 17:45 232 查看
给定一个正整数N(N<1000000),输出用1,5,10,20,50,100组合出N的总共组合方式。

用C++递归实现如下:

#include<iostream>
using namespace std;
int num;
void countCombinationNum(int a[], int len, int base, int N)
{
if (N==0)
{
num++;
return;
}else if (N<0)
{
return;
}else
{
for (int i=base;i<len;i++)
{
countCombinationNum(a, len, i, N-a[i]);
}
}
}
int main()
{
int a[] = {1,5,10,20,50,100};
int N = 500;
countCombinationNum(a, sizeof(a)/sizeof(int), 0, N);
cout<<num<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: