ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Noi.openjudge 1.8.24 蛇形填充数组

2021-07-19 21:01:44  阅读:253  来源: 互联网

标签:24 Noi 填充 int 1.8 蛇形 编号 左下 方阵


题目描述

用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。

蛇形填充方法为:

对于每一条左下-右上的斜线,从左上到右下依次编号1,2,...,2n-1;按编号从小到大的顺序,将数字从小到大填入各条斜线,其中编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。

比如n=4时,方阵填充为如下形式:

1267
35813
491214
10111516

输入

输入一个不大于10的正整数n,表示方阵的行数

输出

输出该方阵,相邻两个元素之间用单个空格间隔

样例输入

4

样例输出

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

思路分析

此题只能寻找数字与行列之间的规律,上代码:


#include <iostream>
using namespace std;
int main () {
	int i,j,k,n,s=1;
	cin>> n;
	int a[n][n];
	a[0][0]=s;
	for (k=1;k<=(n-1)*2;k++){
		if (k%2!=0){
			i=0;
			j=k-i;	
			while (i<=k){
				if (i<n&&j<n){
					s++;
					a[i][j]=s;
				}
				i++;
				j--;
			}
		}
		else{
			j=0;
			i=k-j;
			while(j<=k){
				if (i<n&&j<n){
					s++;
					a[i][j]=s;
				}
				i--;
				j++;
			}
		}
		
	}
	for (i=0;i<n;i++){
		for (j=0;j<n;++j){
			cout<<a[i][j]<<' ';
		}
		cout<<endl;
	}	
	return 0;
}

仅供参考,请多指教

标签:24,Noi,填充,int,1.8,蛇形,编号,左下,方阵
来源: https://blog.csdn.net/KotlinProgram/article/details/118913651

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有