一道PASCAL编程题:方格填数

方格填数(NUMBERS)提交文件名:numbers.pas[问题描述]编一程序在3×3方格中填入数字l~N(9《N《50)内的某9个互不相同的整数,使所有相邻两个方格内... 方格填数(NUMBERS)
提交文件名:numbers.pas
[问题描述]
编一程序在3×3方格中填入数字l~N(9《 N 《 50)内的某 9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。3×3方格中的每个方格的序号如右图所示。如果存在多种填法,我们将全部方格中的九个数按方格的序号排成一个数字序列,不同的填法对应不同的序列,所有序列可以用字典顺序进行排序,定义最小的序列的序号为1,程序要求输出满足条件的一个指定序号的方案,及填法总数。
[输入文件]
输入文件的第一行为N,第二行为一个自然数,表示要求输出的方案的序号。
[输出文件]
输出文件的第一行为满足条件的一个指定序号的方案,第二行为填法总数。
[样例输入]
numbers.in
10
1
[样例输出]
numbers.out
1 2 5 4 3 8 7 10 9
Total = 128
展开
 我来答
匿名用户
2016-04-24
展开全部
const
zs:array[1..25] of byte=(2,3,5,7,11,13,17,19,23,29,
31,37,41,43,47,53,59,61,67,
71,73,79,83,89,97);
type
ar=array[1..9] of byte;
var
a:ar;
m,n,num:longint;

function zhisu(n:byte):boolean;
var
i:byte;
find:boolean;
begin
find:=false;
for i:=1 to 25 do begin
if n<zs[i] then break;
if n=zs[i] then begin find:=true; break; end;
end;
zhisu:=find;
end;

procedure next(k:byte;aa:ar);
var
p,q:byte;
find1,find2:boolean;
begin
if k<=9 then
for p:=1 to n do begin
find1:=false;
find2:=false;
for q:=1 to k-1 do if p=aa[q] then find1:=true;
if not find1 then 
case k of
1:find2:=true; 
2:if zhisu(aa[1]+p) then find2:=true;
3:if zhisu(aa[2]+p) then find2:=true;
4:if zhisu(aa[1]+p) then find2:=true;
5:if zhisu(aa[2]+p) and zhisu(aa[4]+p) then find2:=true;
6:if zhisu(aa[3]+p) and zhisu(aa[5]+p) then find2:=true;
7:if zhisu(aa[4]+p) then find2:=true;
8:if zhisu(aa[5]+p) and zhisu(aa[7]+p) then find2:=true;
9:if zhisu(aa[6]+p) and zhisu(aa[8]+p) then find2:=true;
end;
if not find1 and find2 then 
    begin aa[k]:=p; next(k+1,aa); end;
end
else begin
inc(num);
if num=m then 
begin for p:=1 to 9 do write(aa[p]:4); writeln;  end;
end;
end;

begin
n:=10;
m:=1;
num:=0;
next(1,a);
writeln('total=',num);
end.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
作为上海华然企业咨询有限公司的一员,我们深知大模型测试对于企业数字化转型与智能决策的重要性。在应对此类测试时,我们注重数据的精准性、算法的先进性及模型的适用性,确保大模型能够精准捕捉市场动态,高效分析企业数据,为管理层提供科学、前瞻的决策支... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式