给定一个正整数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;
}
本文介绍了一个使用C++递归实现的问题解决方法,该方法用于计算给定正整数N(N<1000000)能通过1、5、10、20、50、100这几种面额组合出来的所有可能方式的数量。

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



