编程哪里错了啊PASCAL 的

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:17:12
program pailei;
const m=10;
var a:array[0..9] of integer ;
b:array[1..m] of boolean;
procedure print;
var i:integer;
begin
for i:=1 to m do
if a[i] mod 11=0 then writeln a[i];这一步不对吗?
end;
procedure try(dep:integer);
var i:integer;
begin
for i:=1 to m do
if b[i] then
begin
a[dep]:=i; b[i]:=false;
if dep=m then print else try(dep+1);
b[i]:=true;
end;
end;
begin
fillchar(b,sizeof(b),true);
try(1);
end.

我想0到9全排列之后找出能整除11的?
帮我看看怎么改~

好聪明啊,当然是判断整除11的时候错了...
你说的是判断全排列以后的数字(10位数)是否能被11整除是吧...
你用奇数位之和减偶数位之和判断是否为11的倍数来做呀...

数组元素只有9个,而循环次数却又10次,下标越界。