蛇形填数(理解起来超简单!!!)

话不多说,先放原题。
蛇形填数(理解起来超简单!!!)_第1张图片
蛇形填数(理解起来超简单!!!)_第2张图片
怎么说呢,蛇形填数这个填充矩阵的时候方法可能不是很好想,还是很抽象的,但是这个方法绝对非常好理解(边界模拟法)。
首先,咱们先确定矩阵的四个边界,在赋值完最外层边界后,再往里赋值里面的一个子矩阵,不断循环,直至填充完整个矩阵。
AC代码(建议先“食用”截图自己打一遍,带注释的哦):
蛇形填数(理解起来超简单!!!)_第3张图片
蛇形填数(理解起来超简单!!!)_第4张图片
文本格式(一定要自己写一遍哈):

#include<iostream>
using namespace std;
const int N=110;
int q[N][N],n,m;
int main()//赋值过程中符合矩阵填充的方式 
{
	cin>>n>>m;
	int i,j,s=1,x=n,z=1,y=m,k=1;//上下左右四个边界,初始值 
	while(s<=x&&z<=y)
	{
		for(i=z;i<=y;i++)//上边界赋值 
			q[s][i]=k++;
		for(i=s+1;i<=x;i++)//右边界赋值 
			q[i][y]=k++;
		for(i=y-1;i>=z&&ss&&z

“饭”后总结:
也不知道大家“食用”的怎么样,但是这个题确实是一个思路的问题,掌握了解题思路,代码实现就很简单了,也希望大家平常能够多锻炼下思维能力,大家一起加油。
Fighting!

你可能感兴趣的:(C++,算法,c++,算法)