《考研机试》(五)机试题精讲

螺旋数组题目:

《考研机试》(五)机试题精讲_第1张图片

 

 解析:每个人的想法肯定差不多都是顺时针画

1.先画1  2  3  4 (n个数)

2.再画5  6  7 (n-1个数)

3.再画8  9  10 (n-1个数)

4.再画11  12  (n-2个数) 

思考一下:一共有几圈 == 应该画几次,2圈对吧,拓展一下就是(n/2+1)(不论奇偶,其实n是偶数,第三圈相当于画了个空“”)

接下来一起来写代码:

#include
using namespace  std;

/*
 * 1    2   3   4   5
 * 16               6
 * 15               7
 * 14               8
 * 13   12  11  10  9
*/

int main() {
	int n = 5;//画一个5X5的螺旋矩阵
	int count = 1;//从1开始画
	int num[n][n];
	
	//问题1:要画到哪行结束呢,是不是得要有3圈,即n/2+1 
	/*
	 第一圈: 
	 * 1    2   3   4   5
	 * 16               6
	 * 15               7
	 * 14               8
	 * 13   12  11  10  9
	 
	 第二圈: 
	    17  18  19
		24  25  20
		23  22  21
		
	第三圈:
			25 			
	*/
	 
 	for(int i=0; i=i; j--){
			//画下面一个反横:13   12   11    10 
			num[n-i-1][j] = count++; 
		} 
		
		for(int j=n-i-2; j>=i+1; j--){
			//画左边一个反竖:14   15   16 
			num[j][i] = count++;
		} 
	 }
	 
    //打印
    for(int i=0; i 
 

 

 

 

你可能感兴趣的:(《考研机试》(五)机试题精讲)