东华OJ 字符串中等_子字符串排序、二维数组中等_阵列

前言:这阵列比我抽到的暗恋厉害多了。实现思路都挺容易想到但是阵列这题我的思路很容易PE。对于输出条件的控制很高。

阵列:

  1. 分析题意:
    1. 需要我们按照一定规则打印一个矩阵(可能不完全-即3*3的矩阵内可能位置不变但是没有8&9)
    2. 在左边的虽然不需要打印,但是我们仍然需要输入空格来达成格式相同。
  2. 实现思路:
    1. 既然我们判断了一个矩形能够容下这n个元素,那么我们就可以先定义一个足够放下100个元素的二维数组(防止越界),然后判断n个元素需要多大的矩阵存放后再向二维数组存放这个矩阵。
    2. 最后根据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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值