欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 第十一届蓝桥杯 2020 C/C++组 蛇形填数

第十一届蓝桥杯 2020 C/C++组 蛇形填数

2025/9/23 14:09:08 来源:https://blog.csdn.net/2301_80558092/article/details/147749867  浏览:    关键词:第十一届蓝桥杯 2020 C/C++组 蛇形填数

目录

题目:

题目描述:

题目链接:

思路:

思路详解:

代码:

代码详解:


题目:

题目描述:

题目链接:

蛇形填数 - 蓝桥云课

思路:

思路详解:

看图找规律,容易发现,数字按照:向右一步->向左下直到边界->向下一步->向右上直到边界。用二维数组表示点的坐标,用i表示第i行,用j表示第j列。走一步的直接写即可(i++表示向下一步,j++表示向右一步),走到边界的用while加上判断边界的条件即可

注意判断边界还存在规律,草稿纸找到的规律:找第n行n列,i,j需要遍历到2*n-1,找a[20][20]即找第20行20列,i,j需要遍历到39,如果i,j设的数<39输出结果为0,草稿纸如下图所示:

代码:

代码详解:

#include<bits/stdc++.h>  //填空题,答案是761 
using namespace std;     //容易发现,数字按照:向右一步->向左下直到边界->向下一步->向右上直到边界 //走一步的直接写即可,走到边界的用while加上判断边界的条件即可 
int a[1000][1000];       //多开一点,防止数组越界 int main()
{a[1][1]=1;int temp=1;for(int i=1,j=1;i<=40&&j<=40;) //由草稿纸找到的规律:找第n行n列,i,j需要遍历到2*n-1,找a[20][20] {                              //即找第20行20列,i,j需要遍历到39,如果i,j设的数<39输出结果为0 j++;          //表示向右一步 temp++;a[i][j]=temp;while(j!=1)   //向左下直到边界,边界的条件就是走到第一列,即j==1 {i++;j--;temp++;a[i][j]=temp;}i++;          //表示向下一步 temp++;a[i][j]=temp;while(i!=1)   //向右上直到边界,边界的条件就是走到第一行,即i==1 {i--;j++;temp++;a[i][j]=temp;}}cout<<a[20][20]<<endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词