谁能帮我解读这句代码
这是输入7个以上数字进行7个一组进行组合的部分代码
s2 := TStringList.Create;
// s2.Duplicates := dupIgnore;
// s2.Sorted := True;
mstr := '';
for i := 0 to s1.Count - 1 do
mstr := mstr + chr(ord('A') + StrToInt(s1.Strings[i]));
// s2.Add(mstr);
// i:=0;
timestart := GetTickcount;
flen := length(mstr);
for L1 := 1 to flen - 6 do
for L2 := L1 + 1 to flen - 5 do
for L3 := L2 + 1 to flen - 4 do
for L4 := L3 + 1 to flen - 3 do
for L5 := L4 + 1 to flen - 2 do
for L6 := L5 + 1 to flen - 1 do
for L7 := L6 + 1 to flen do
s2.Add(mstr[L1] + mstr[L2] + mstr[L3] + mstr[L4] + mstr[L5] +
mstr[L6] + mstr[L7]);
timestart := GetTickcount - timestart;
代码里面这句我看不懂:请解释以下行吗?
mstr := mstr + chr(ord('A') + StrToInt(s1.Strings[i]));
为什么要+ chr(ord('A') ?和我输入的参与组合的数字有什么关系?
[解决办法]
我告诉你吧,
1,2,5,9,10,20,4这样的形式,每个号长度不一,有1位有2位,不好处理
相应号码转换成以单个字符后('A'等价于数字1、'B'等价于数字2......),容易使用众多的字符串函数来处理