• 蓝桥杯-打印十字


    原题链接

    历届试题 打印十字图 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

    分析

    • 这个题,不知道考什么,感觉就是来磨时间的。
    • 主要先分析 ,看图,找规律
    • 输入的数字是n 5+4n即行数
    • 首先打印中间的十字,然后打印包围他的第一层,这一层首先把它当成一个类正方形(如下有示例图一),然后再把正方形的四个角修理一下即可(示例图二为最终结果)。
    • 我的代码就不用看了,贼难受,没想到什么好办法,而且不理清思路的话,你是看不懂代码的

    先放截图

    图一 刚开始是想打正方形的但是考虑到直接改变循环的大小,可以省一些步骤,所以我把上图,改成了下图:

    图二:

    后放代码

    /**
    这是网址
    
    分析
    主要先分析 ,看图,找规律
    
    输入的数字是n 5+4n即层数
    
    首先打印中间的十字,然后打印包围他的第一层,这一层首先把它当成一个正方形,然后再把正方形的四个角修理一下即可。
    
    */
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main()
    {
        int n;
        cin>>n;
        int k=5+4*n;//n表示围着的层数,k表示最终图形的行列数
        int **A=new int*[k];
        for(int i=0;i<k;i++){
            A[i]=new int[k];
        }
        A[2*n+2][2*n+2]=1;
        A[2*n+2][2*n+3]=1;
        A[2*n+2][2*n+4]=1;
        A[2*n+2][2*n+1]=1;
        A[2*n+2][2*n+0]=1;
        A[2*n+4][2*n+2]=1;
        A[2*n+3][2*n+2]=1;
        A[2*n+1][2*n+2]=1;
        A[2*n+0][2*n+2]=1;
    
        int c=(k-1)/2;
        for(int i=1;i<=n;i++){
                for(int j=c-2*i;j<=c+2*i;j++){
                    A[j][c-2-2*i]=1;
                    A[j][c+2+2*i]=1;
                    A[c-2-2*i][j]=1;
                    A[c+2+2*i][j]=1;
                }
                //修理四角
                //左上
                A[c-2*i][c-2*i]=1;
                A[c-2*i][c-1-2*i]=1;
                A[c-1-2*i][c-2*i]=1;
                //右上
                A[c-2*i][c+2*i]=1;
                A[c-2*i][c+1+2*i]=1;
                A[c-1-2*i][c+2*i]=1;
    
                //右下;
                A[c+2*i][c+2*i]=1;
                A[c+2*i][c+1+2*i]=1;
                A[c+1+2*i][c+2*i]=1;
                //左下
                A[c+2*i][c-2*i]=1;
                A[c+2*i][c-1-2*i]=1;
                A[c+1+2*i][c-2*i]=1;
        }
    
        for(int i=0;i<k;i++){
            for(int j=0;j<k;j++){
                if(A[i][j]==1){
                    cout<<"$";
                }else{
                    cout<<".";
                }
            }
            cout<<endl;
        }
    }
    
    
  • 相关阅读:
    P1012拼数
    P1622释放囚犯
    P1064 金明的预算方案
    P1754球迷购票问题
    卡塔兰数
    P1474货币系统
    P2562kitty猫基因
    P3984高兴的津津
    5-servlet简介
    java通过百度AI开发平台提取身份证图片中的文字信息
  • 原文地址:https://www.cnblogs.com/simuhunluo/p/8653347.html
Copyright © 2020-2023  润新知