哪位大侠帮忙翻译一下啊

later later 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
翻译成c语言,小弟只懂c 语言
program lxw010;
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;
procedure comb2(m,n:integer; var cmn:longint);
var c:longint;
i:integer;
begin
n2:=n;
if n>(m div 2) then n2:=m-n;
c:=1;
for i:=1 to n2 do
c:=c*(m-i+1) div i;
cmn:=c;
end;
procedure comb1(n,r:integer; var p:row; var i:integer);
var j,k:integer;
begin
i:=1;
for j:=r downto 1 do
if (p[j]<n+j-r) then
begin
inc(p[j]);
for k:=j+1 to r do p[k]:=p[k-1]+1;
exit
end;
i:=0;
end;
procedure process;
var i:integer;
begin
a1:=succ(a1);
for i:=1 to n-1 do
s2[p[i]]:=s2[p[i]]+[a1];
end;
begin {main}
writeln('输入人员总数 M(<8), 开锁必需人数 N:(<=M),'); readln(m,n);
comb2(m,n-1,c1);
comb2(m-1,n-1,c2);
writeln('特征总数:',c1, ' 每个磁卡特征数:',c2);
a1:=pred('A'); s1:=[];
for i:=1 to m do s2[i]:=[];
for i:=1 to c1 do
program lxw010;
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;
procedure comb2(m,n:integer; var cmn:longint);
var c:longint;
i:integer;
begin
n2:=n;
if n>(m div 2) then n2:=m-n;
c:=1;
for i:=1 to n2 do
c:=c*(m-i+1) div i;
cmn:=c;
end;
procedure comb1(n,r:integer; var p:row; var i:integer);
var j,k:integer;
begin
i:=1;
for j:=r downto 1 do
if (p[j]<n+j-r) then
begin
inc(p[j]);
for k:=j+1 to r do p[k]:=p[k-1]+1;
exit
end;
i:=0;
end;
procedure process;
var i:integer;
begin
a1:=succ(a1);
for i:=1 to n-1 do
s2[p[i]]:=s2[p[i]]+[a1];
end;
begin {main}
writeln('输入人员总数 M(<8), 开锁必需人数 N:(<=M),'); readln(m,n);
comb2(m,n-1,c1);
comb2(m-1,n-1,c2);
writeln('特征总数:',c1, ' 每个磁卡特征数:',c2);
a1:=pred('A'); s1:=[];
for i:=1 to m do s2[i]:=[];
for i:=1 to c1 do
begin a1:=succ(a1); s1:=s1+[a1] end;
for i:=1 to n-1 do p[i]:=i; p[n]:=m+1;
i:=1; a1:=pred('A');
while i>0 do
begin
process;
end;
for i:=1 to m do
begin
s2[i]:=s1-s2[i];
a1:=pred('A'); write(i,'# ');
for j:=1 to c1 do
begin
a1:=succ(a1);
if a1 in s2[i] then write(a1:2);
end;
writeln;
end;
end.


...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
later
VC/MFC 16,550 成员 421,606 内容