组卷题库 > 高中信息技术试卷库
试题详情
现有如下问题,在一个6×6的跳棋棋盘上放置6个棋子,使得每行、每列,每条斜线上至多有一个棋子,请问有几种不同的摆法。为了方便处理,可将棋盘模拟成6*6的正方形矩阵,如第1图a所示。该矩阵中从左往右列号依次1,2,3,4,5,6,从上往下行号依次为1,2,3,4,5,6。若在位置(1,2)(指第一行第二列)中放置了一个旗子,则第一行,第二列以及该位置所在的左斜线与右斜线均无法放置其他棋子。

图a

解决该问题的算法思想如下:

①从第一行开始逐行放置棋子。

②每行从左到右逐列尝试放置棋子,放置之前与已放置的棋子作比对。

③若无冲突,放置该行棋子并跳转至下一行。

④若有冲突,则在本行中向右继续寻找放置棋子的位置,若找不到则返回上一行,重新寻找棋子放置位置。

⑤最后一行放置结束,输出一种方案并继续寻找下一方案。用 VB程序实现该算法,程序界面设计如图b所示。

图b

知识点
参考答案
采纳过本试题的试卷
教育网站链接