free pascal方格填数(急~下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 08:04:02
free pascal方格填数(急~下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.

free pascal方格填数(急~下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.
free pascal方格填数(急~
下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.一种可行的方案:9,81,324,7056.

【输出文件】 输出文件nmber.out文件包括若干行,每一行为一种可行的方案,包括四个整数,整数之间用一个空格分隔,最后一个数据后无空格.【输出样例】输出数据中的一行示例为:9 81 324 7056

free pascal方格填数(急~下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案.
百度毁了我的格式...将就看吧,朴素算法..
var
use:array[0..9] of boolean;
i,j,k,l,a,b,c,d,e,o,p,q,r:longint;
begin
for i:=0 to 9 do //第一位的循环
begin
if round(sqrt(i))sqrt(i) then continue; //判断是不是平方
use[i]:=true; //表示它用过了
for j:=1 to 98 do //第二位的循环从01到98即可
begin
if (round(sqrt(j))sqrt(j)) then continue; //判断平方
a:=j div 10; //取十位
b:=j mod 10; //个位
if (a=b) or (use[a]) or (use[b]) then continue; //判断有没重的或者用过
use[a]:=true; //现在用过了
use[b]:=true; //同上
for k:=12 to 987 do //第三层012 到987
begin
if round(sqrt(k))sqrt(k) then continue; //楼主要会举一反三
c:=k div 100;
d:=k mod 100 div 10;
e:=k mod 10;
if (c=d) or (d=e) or (c=e) or (use[c]) or (use[d]) or (use[e]) then continue;
use[c]:=true;
use[d]:=true;
use[e]:=true;
for l:=123 to 9876 do
begin
if round(sqrt(l))sqrt(l) then continue;
\x09\x09o:=l div 1000;
\x09\x09p:=l mod 1000 div 100;
\x09\x09q:=l mod 100 div 10;
\x09\x09r:=l mod 10;
\x09\x09if (o=p) or (o=q) or (o=r) or (p=q) or (p=r) or (q=r) or
\x09\x09 (use[o]) or (use[p]) or (use[q]) or (use[r]) then continue;
\x09\x09writeln(i,' ',j,' ',k,' ',l); //都走到这一步了,直接输出就行了
\x09 end;
\x09 use[c]:=false; //用过的要还回来..待会还可能要用
\x09 use[d]:=false;
\x09 use[e]:=false;
end;
use[a]:=false;
use[b]:=false;
end;
use[i]:=false;
end;
readln;
end.
保证原创可实现 给分、~

free pascal方格填数(急~下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案. free pascal方格填数(速进,下图中有4行方格,这10个格子中填入0~9这10个不同的数字,每行构成一个自然数,组成4个位数各不相同的自然数,已知这4个自然数都是某个整数的平方,求出所有的填写方案 急求free pascal错误表本人急需要free pascal错误表,一定是要带中文的,所用的free pascal版本为1.0.6,一定要是free pascal,而不是turbo pascal或者其他的 pascal编程:方格取数题目描述设有N*N的方格图(N 急求free pascal高手编程:蛇形填数,在n*n的格子中,按如下方式填数.1 3 4 10 11……2 5 9 12 19……6 8 13 18 20……7 14 17 21 24……15 16 22 23 25………… free pascal常见语句 求几道 初学 free pascal free pascal 黑洞6174 free pascal怎样产生随机数 数字游戏 pascal编程题【问题描述】  填数字方格的游戏有很多种变化,如下图所示的 4×4 方格中,我们要选择从数字 1 到 16 来填满这十六个格子(Aij,其中 i = 1..4,j = 1..4).为了让游戏更有挑战 用FREE PASCAL 做一个程序‘判断数是否是三位数’ Free Pascal 和Pascal的区别?为什么竞赛都用Free Pascal?Free Pascal 和Pascal的区别?为什么竞赛都用Free Pascal? 怎样将12345678这八个数分别填在下图的8个小方格,使相邻两个数的差,(大数减小数) 一道Free Pascal的题目求100~1000之间能被7整除的数,每行输出10个. free pascal 求最大公约数与最小公倍数 FREE PASCAL,输入两个数,求最小公倍数 free pascal 求最大公约数与最小公倍数 free pascal 圆锥体积运算源码