====================================================================================================================
原程序代码如下:(弊端是:小量数据没问题,但多些数据的时候,就会无法有数据出来)
void CBaseData::dfs(int u, int sum, int state, int n, int k, long long a[],CString &result)
{
if(k>n)
{
result="";
return;
}
CString number;
CString character(',',1);
if (sum + (n - u) < k) return;
if (sum == k) {
for (int i = 0; i < n; i++) {
if (state >> i & 1) {
number.Format(_T("%d"),a[i]);
if(a[i]>=1 && a[i]<10)
{
number="0"+number;
}
result=result+number+character;