- 问题描述
定义n阶间断折叠方阵是把从起始数1开始的n2个整数折叠为n行n列的n阶方阵:起始数1置于方阵的左上角,然后从起始数开始递增,每一层从第1行开始,先竖向下再折转向右,层层折叠地排列为间断折叠方阵。
n阶回转折叠方阵是把起始数1置于方阵的左上角,然后从起始数开始递增,偶数层从第1行开始,先竖向下再折转向右;奇数层从第1列开始,先横向右再竖向上,呈首尾连接,层层折叠地排列为回转折叠方阵。
下图所示为5阶间断折叠方阵与5阶回转折叠方阵。
试递推构造并输出指定n阶间断折叠方阵与回转折叠方阵。
- 算法分析
设置二维数组z,从给定的起始数1开始,按递增1取值,据间断折叠方阵的构造特点给二维数组z(n,n)赋值。
显然起始数1赋值给z(1,1)。 - 程序代码
#include <iostream>
#define N 50
using namespace std;
//间接折叠方阵