《信息学奥赛课课通(C++)》第5单元 数组.ppt

《信息学奥赛课课通(C++)》第5单元 数组.ppt

实践巩固 第 9 课 数字方阵 学习目标 应用二维数组解决一些数字方阵问题,体会数组的下标运算。 数字方阵 数字方阵就是一个行列数相等的二维数组,其中的每个元素都是数字。解决数字方阵问题,一般有两种方法:解析法和模拟法。 解析法就是找出每一个方阵元素 f [i][j] 与 i、j 和数组规模n的通项公式,然后直接用两重循环给数组元素赋值,相对比较容易,一般用在初始化等场合。 模拟法就是把数字方阵看成一个动态的填数过程,把 n^2 个数依次填入数组中,每填好一个数,就定位好下一个数的位置 i 和 j。 例1、n 阶奇数幻方 【问题描述】 行列数相等的矩阵称为方阵。把正整数 1~n 2 (n 为奇数)排成一个 n×n 方阵,使得方阵中的每一行、每一列以及两条对角线上的数之和都相等,这样的方阵称为“n 阶奇数幻方”。 编程输入 n,输出 n 阶奇数幻方。 【输入格式】 一行一个正整数 n,1≤n20,n 为奇数。 【输出格式】 共 n 行,每行 n 个正整数,每个正整数占 5 列。 【输入样例】 5 【输出样例】 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 【问题分析】 定义一个二维数组模拟填数的过程。分析样例发现,n 阶奇数幻方可以按下列方法生成:先把数字 1 填在第 1 行的正中

文档评论(0)

1亿VIP精品文档

相关文档