程序问题,今天老师出了个题,求11个数中取出6个数为一组,请写出所有的组合(有462组)位置不限
发布网友
发布时间:2022-12-20 22:25
我来回答
共1个回答
热心网友
时间:2023-09-30 09:15
lua 代码:
if _VERSION=='Lua 5.1' then
strlen=string.len
strsub=string.sub
end
-- st 为原始字符串,用以代表集合
-- n 为选取集合中的元素个数
-- subst 为选取的元素子集,也用字符串表示
-- i 为选取的第i个元素
-- cha 为选取的子集的最后一个元素(字符)
-- chb 为选取的欲加入子集的元素(字符)
function next(i,st,subst,n)
if i==n+1 then do num=num+1; print(subst); end
else
for j=i,strlen(st) do
cha=strsub(subst,strlen(subst),strlen(subst))
chb=strsub(st,j,j)
--if not strfind(subst,chb) then
if chb>cha then
next(i+1,st,subst..chb,n)
end
end
end
end
num=0
next(1,'abcdefghijk','',6)
print('num=',num)