前言:这阵列比我抽到的暗恋厉害多了。实现思路都挺容易想到但是阵列这题我的思路很容易PE。对于输出条件的控制很高。
阵列:
- 分析题意:
- 需要我们按照一定规则打印一个矩阵(可能不完全-即3*3的矩阵内可能位置不变但是没有8&9)
- 在左边的虽然不需要打印,但是我们仍然需要输入空格来达成格式相同。
- 实现思路:
- 既然我们判断了一个矩形能够容下这n个元素,那么我们就可以先定义一个足够放下100个元素的二维数组(防止越界),然后判断n个元素需要多大的矩阵存放后再向二维数组存放这个矩阵。
- 最后根据n的大小和大于n的元素的位置关系来判断是停止输出还是打印空格占位。
最后判断一行有无二位数从而打印的条件不想写了,一共也就三种情况,直接打表了。
AC代码
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int n;
while(cin>>n){
int martix[11][11];
int edge;
if(sqrt(n)!=(int)sqrt(n)) edge= (int)sqrt(n)+1;
else edge=sqrt(n);
int x,y;
if(edge%2!=0){
martix[edge/2+1][edge/2+1]=1;
x=edge/2+1;
y=edge/2+1;
}
else {
martix[edge/2][edge/2]=1;
x=edge/2;
y=edge/2;
}
int dir=1;
int step=0;
bool flag = 0;
for(int i=2,move=0;i<=edge*edge

最低0.47元/天 解锁文章
5557

被折叠的 条评论
为什么被折叠?



