free pascal 完全平方数用1~9 组成三个三位数,每一个数的各个数位上的数都不一样(每行输出三个数,这三个数一共9位,都不能为相同数字).而且这三个三位数都是完全平方数.
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/27 14:10:07
free pascal 完全平方数用1~9 组成三个三位数,每一个数的各个数位上的数都不一样(每行输出三个数,这三个数一共9位,都不能为相同数字).而且这三个三位数都是完全平方数.
free pascal 完全平方数
用1~9 组成三个三位数,每一个数的各个数位上的数都不一样(每行输出三个数,这三个数一共9位,都不能为相同数字).而且这三个三位数都是完全平方数.
free pascal 完全平方数用1~9 组成三个三位数,每一个数的各个数位上的数都不一样(每行输出三个数,这三个数一共9位,都不能为相同数字).而且这三个三位数都是完全平方数.
这是结果:
361 529 784
361 784 529
529 361 784
529 784 361
784 361 529
784 529 361
下面是代码
var
u:array[1..9]of boolean;
a:array[1..9]of longint;
flag:boolean;
procedure dfs(x:longint);
var i:longint;
begin
if x>9 then
begin
flag:=true;
for i:=1 to 3 do
begin
x:=a[i*3-2]*100+a[i*3-1]*10+a[i*3];
if sqr(trunc(sqrt(x)))x then
begin
flag:=false;
break;
end;
end;
if flag then
writeln(a[1],a[2],a[3],' ',a[4],a[5],a[6],' ',a[7],a[8],a[9]);
exit;
end;
for i:=1 to 9 do
if not u[i] then
begin
u[i]:=true;
a[x]:=i;
dfs(x+1);
u[i]:=false;
end;
end;
begin
dfs(1);
end.