pascal 背包问题一段程序的解释请逐句解释一下下面这段代码,fillchar(b,sizeof(b),0);while b[0]=0 dobegin j:=n;while b[j]=1 do dec(j);b[j]:=1;for i:=j+1 to n dob[i]:=0;end;

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 23:29:58

pascal 背包问题一段程序的解释请逐句解释一下下面这段代码,fillchar(b,sizeof(b),0);while b[0]=0 dobegin j:=n;while b[j]=1 do dec(j);b[j]:=1;for i:=j+1 to n dob[i]:=0;end;
pascal 背包问题一段程序的解释
请逐句解释一下下面这段代码,
fillchar(b,sizeof(b),0);
while b[0]=0 do
begin j:=n;
while b[j]=1 do dec(j);
b[j]:=1;
for i:=j+1 to n do
b[i]:=0;
end;

pascal 背包问题一段程序的解释请逐句解释一下下面这段代码,fillchar(b,sizeof(b),0);while b[0]=0 dobegin j:=n;while b[j]=1 do dec(j);b[j]:=1;for i:=j+1 to n dob[i]:=0;end;
lz确定是背包的的程序么.
我怎么觉得是在模拟二进制加法.
按照程序的意思,很容易模拟出b数组的变化:
0-->1-->01-->10-->11-->100-->101-->110.
直到最高位,也就是第n+1时候为止,这是后,b数组里面有n个1,对应的十进制数就是2^(n+1)-1
恩.我就只能看出这些.
如果还有什么问题,可以直接PM.