解题思路:
这个题我的题解就是纯计算出来的,每一行每一列都是找规律。首先先输入一个数,
对于每一行,写一个外循环,里面套着每一列的输出,也就是内循环,对于每一行的输出,
首先先计算第一个数,规律就是上一行的行数加上上一行那个数。 然后从第二列开始写内循环,
每一列的数就是上一列的那个数加上本列的列数加上上一行的行数。就找出来了。
注意事项:
唯一需要注意的就是格式控制输出,末尾不能有多余的空格,每一个输出最后别有换行,
这个只要你把规律找出来之后循环中稍微限制一下即可。
参考代码:
#include <iostream>
using namespace std;
int main()
{
int n;
while (cin>>n)
{
int temp = 0;
int start = 1;
for (int i=1; i<=n; i++) //行
{
if(i<n)
{
start = i-1+start; //第一个数的规律,上一行的行数加上一行那个数,初始为1
temp = start; //记录第一列,计算第二列时用到
cout << start << " ";
for (int j=2; j<=n-i+1; j++) // 列
{
if (j<n-i+1)
{
temp += j+i-1; //上一列那个数加上本列的列数加上上一行的行数
cout << temp << " ";
}
else
{
temp += j+i-1;
cout << temp;
}
}
cout << endl;
}
else
{
start = i-1+start;
temp = start;
cout << start;
for (int j=2; j<=n-i+1; j++) // 列
{
if (j<n-i+1)
{
temp += j+i-1;
cout << temp << " ";
}
else
{
temp += j+i-1;
cout << temp;
}
}
}
}
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复