
试一下,错误之处,望高人指点.
void PrintCombi(const CString & strCombi, const CString & strAlphabet)
{
//strCombi 已组合过的字母
//strAlphabet 未组合的字母
if ( strAlphabet.GetLength() == 1 )
{
printf("%s,", strCombi + strAlphabet );
return ;
};
for(int i = 0; i < strAlphabet.GetLength(); i++ )
{
CString strSubCombi = strCombi + strAlphabet.GetAt( i );
CString strSubAlphabet = strAlphabet;
strSubAlphabet.Delete( i );
PrintCombi( strSubCombi, strSubAlphabet );
}
return ;
}
int main(int argc, char* argv[])
{
CString strAlphabet ="ABCD";
PrintCombi( "", strAlphabet );
return 0;
}