free pascal方格填数(速进,
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/04 23:15:50
free pascal方格填数(速进,
下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.一种可行的方案:9,81,324,7056.
图
【输出文件】 输出文件nmber.out文件包括若干行,每一行为一种可行的方案,包括四个整数,整数之间用一个空格分隔,最后一个数据后无空格.【输出样例】输出数据中的一行示例为:9 81 324 7056
![](http://img.wesiedu.com/upload/7/8a/78a3b7d6c91fd0a0e91c1ac8fbaaf8f9.jpg)
下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.一种可行的方案:9,81,324,7056.
图
【输出文件】 输出文件nmber.out文件包括若干行,每一行为一种可行的方案,包括四个整数,整数之间用一个空格分隔,最后一个数据后无空格.【输出样例】输出数据中的一行示例为:9 81 324 7056
![](http://img.wesiedu.com/upload/7/8a/78a3b7d6c91fd0a0e91c1ac8fbaaf8f9.jpg)
![free pascal方格填数(速进,](/uploads/image/z/17788007-47-7.jpg?t=free+pascal%E6%96%B9%E6%A0%BC%E5%A1%AB%E6%95%B0%28%E9%80%9F%E8%BF%9B%2C)
var
i,j,k,m,n,a1,a2,a3,a4,a11,a22,a33,a44,s:longint;
a:array[1..10] of longint;b1:boolean;
b:array[0..9] of boolean;
begin
for a11:=1 to 3 do
for a22:=4 to 9 do
for a33:=13 to 31 do
for a44:=32 to 99 do
begin
fillchar(b,sizeof(b),false);
a1:=a11*a11;
a2:=a22*a22;
a3:=a33*a33;
a4:=a44*a44;
a[1]:=a1;{分解数字}
a[2]:=a2 div 10;
a[3]:=a2 mod 10;
a[4]:=a3 div 100;
a[5]:=a3 mod 100 div 10;
a[6]:=a3 mod 10;
a[7]:=a4 div 1000;
a[8]:=a4 mod 1000 div 100;
a[9]:=a4 mod 100 div 10;
a[10]:=a4 mod 10;{分解完毕}
b1:=true;{布尔变量初赋值}
for i:=1 to 10 do
if not b[a[i]] then b[a[i]]:=true{a[i]是填入方格的数,如果未填入,就设为已填入}
else b1:=false;{填入就把临时变量设为false(有重复)}
if b1 then writeln(a1,' ',a2,' ',a3,' ',a4);{如果没重复过就输出}
end;
end.
i,j,k,m,n,a1,a2,a3,a4,a11,a22,a33,a44,s:longint;
a:array[1..10] of longint;b1:boolean;
b:array[0..9] of boolean;
begin
for a11:=1 to 3 do
for a22:=4 to 9 do
for a33:=13 to 31 do
for a44:=32 to 99 do
begin
fillchar(b,sizeof(b),false);
a1:=a11*a11;
a2:=a22*a22;
a3:=a33*a33;
a4:=a44*a44;
a[1]:=a1;{分解数字}
a[2]:=a2 div 10;
a[3]:=a2 mod 10;
a[4]:=a3 div 100;
a[5]:=a3 mod 100 div 10;
a[6]:=a3 mod 10;
a[7]:=a4 div 1000;
a[8]:=a4 mod 1000 div 100;
a[9]:=a4 mod 100 div 10;
a[10]:=a4 mod 10;{分解完毕}
b1:=true;{布尔变量初赋值}
for i:=1 to 10 do
if not b[a[i]] then b[a[i]]:=true{a[i]是填入方格的数,如果未填入,就设为已填入}
else b1:=false;{填入就把临时变量设为false(有重复)}
if b1 then writeln(a1,' ',a2,' ',a3,' ',a4);{如果没重复过就输出}
end;
end.