蓝桥杯2020第十一届C语言B组省赛习题题解——习题C.蛇形填数

每日刷题(九十六)

蓝桥杯第十一届C语言B组省赛习题C:蛇形填数(10’)

在这里插入图片描述
C++代码如下:
(测试代码)

#include<iostream>
using namespace std;

int main()
{
    
    
	int a[500][500] = {
    
    0};
	a[1][1] = 1;
	
	for(int i = 2; i <= 200; i += 2)
	{
    
    	//向右 
		int j = i;
		a[1][j] = a[1][j - 1] + 1;
		//向左下
		int k;
		for(k = 2; k <= i; k++)
		{
    
    
			a[k][--j] = a[k - 1][j + 1] + 1;
		} 
		//向下
		a[i + 1][j] = a[i][j] + 1; 
		//向右上
		int m;
		int u = 1;
		for(m = i; m >= 1; m--)
		{
    
    
			a[m][++j] = a[m + 1][u++] + 1; 
			
		}
	}
	
	for(int i = 1; i <= 20; i++)
	{
    
    
		for(int j = 1; j <= 20; j++)
		{
    
    
			cout << a[i][j] << ' ';
		}
		cout << '\n';
	}
	cout << a[20][20] << endl;
	return 0;
}

运行结果如下:
在这里插入图片描述
考场代码:

#include<iostream>
using namespace std;

int main()
{
    
    
	int a[500][500] = {
    
    0};
	a[1][1] = 1;
	
	for(int i = 2; i <= 200; i += 2)
	{
    
    	//向右 
		int j = i;
		a[1][j] = a[1][j - 1] + 1;
		//向左下
		int k;
		for(k = 2; k <= i; k++)
		{
    
    
			a[k][--j] = a[k - 1][j + 1] + 1;
		} 
		//向下
		a[i + 1][j] = a[i][j] + 1; 
		//向右上
		int m;
		int u = 1;
		for(m = i; m >= 1; m--)
		{
    
    
			a[m][++j] = a[m + 1][u++] + 1; 
			
		}
	}
	
//	for(int i = 1; i <= 20; i++)
//	{
    
    
//		for(int j = 1; j <= 20; j++)
//		{
    
    
//			cout << a[i][j] << ' ';
//		}
//		cout << '\n';
//	}
	cout << a[20][20] << endl;
	return 0;
}

运行结果:
在这里插入图片描述
所以答案是:761

第二种方法:

代码就是硬模拟,一次往左下,一次往右上…

#include <bits/stdc++.h>
using namespace std;
int a[50][50],cnt=1;
int main()
{
    
    
    for(int i = 1 ; i <= 40; i++)
	{
    
    
        if(i % 2==1 )
		{
    
    
            for(int x = i, y = 1; x >= 1 && y <= i; x--, y++)
                a[x][y] = cnt++;
        }
        else
		{
    
    
            for(int x = 1, y = i; x <= i && y >= 1; x++, y--)
                a[x][y] = cnt++;
        }
    }
    printf("%d\n", a[20][20]);
	return 0;
}

如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

猜你喜欢

转载自blog.csdn.net/qq_44631615/article/details/113802952