这是输入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') ?和我输入的参与组合的数字有什么关系?
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') ?和我输入的参与组合的数字有什么关系?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货