标签:ch 20 ++ C++ 蓝桥 int while 填数 40
【问题描述】如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …
…
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列
的数是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
【正确答案】761
看见有的大神直接找到他们的规律然后就算出了那个数,我当时没想到,用的是死方法,就是把数组全部赋值然后找到20行20列那个数。
放上我的代码,里面有代码解析:
#include <iostream>
using namespace std;
int main()
{
int ch[40][40]; //一定要分配40个空间的数组,才能读出最中间[19][19]的位置
ch[0][0] = 1; //第一个值直接赋值1
int s = 2; //后面的从2开始一直加
int i=0,j=1,k=1;//i,j是数组下标,我们直接从[0][1]开始就可以了,k用来标志上行和下行的次数
while(k<=19)
{
//先是下行,往斜下方加数
while(j>=0)
{
ch[i][j] = s++;
i++;j--;
}
j++; //到最后j变成-1了,要加一次使其为0
//然后上行,往斜上方加数
while(i>=0)
{
ch[i][j] = s++;
i--;j++;
}
i++; //到最后i变成-1了,要加一次使其为0
k++;
}
cout<<ch[19][19]<<endl; //761
//测试打印一下
/*
for(i=0;i<40;i++)
{
for(j=0;j<40;j++)
{
cout <<ch[i][j]<<" ";
}
cout<<endl;
}
*/
return 0;
}
这是打印出来的结果图(我把数组也打印出来了):
标签:ch,20,++,C++,蓝桥,int,while,填数,40 来源: https://blog.csdn.net/weixin_45529874/article/details/115673470
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。