• 一道蓝桥比赛的训练打印题【构造+不断的构造+构造规律】


      历届试题 打印十字图  
    时间限制:1.0s   内存限制:256.0MB
     

       题目地址:http://lx.lanqiao.org/problem.page?gpid=T25

     
    问题描述

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

    对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。

    输入格式
    一个正整数 n (n<30) 表示要求打印图形的层数。
    输出格式
    对应包围层数的该标志。
    样例输入
    1
    样例输出
    样例输入
    3
    样例输出
    提示
    请仔细观察样例,尤其要注意句点的数量和输出位置。
     
    代码:
    #include <stdio.h>
    
    int main()
    {
        char s[150][150];
        int i, j, k;
        int n;
        scanf("%d", &n);
        int center=(9+(n-1)*4+1)/2;
        s[center][center]='$';
        for(j=center-2; j<=center+2; j++)
            s[center][j]='$';
        for(i=center-2; i<=center+2; i++)
            s[i][center]='$'; //构造中心十字
    
        int dd=4; int ff=5;
        for(i=1; i<=n; i++){
            int up=center-dd;
            for(j=center-((ff-1)/2); j<=center+((ff-1)/2); j++)
                s[up][j]='$';
    
            int down=center+dd;
            for(j=center-((ff-1)/2); j<=center+((ff-1)/2); j++)
                s[down][j]='$';
    
            int left=center-dd;//列
            for(k=center-((ff-1)/2); k<=center+((ff-1)/2); k++)
                s[k][left]='$';
    
            int right=center+dd;
            for(k=center-((ff-1)/2); k<=center+((ff-1)/2); k++)
                s[k][right]='$';
            dd+=2;
            ff+=4;
        } //打印四个边栏
        for(i=1; i<=n; i++){
            //构造1个点
            int a, b;
    
            a=center-i*2;
            s[a][a]='$'; s[a-1][a]='$'; s[a][a-1]='$';
    
            b=center+i*2;
            s[b][b]='$'; s[b][b+1]='$'; s[b+1][b]='$';
    
            s[a][b]='$'; s[a-1][b]='$'; s[a][b+1]='$';
    
            s[b][a]='$'; s[b][a-1]='$'; s[b+1][a]='$';
        }
    
        for(i=1; i<=9+(n-1)*4; i++)
        {
            for(j=1; j<=9+(n-1)*4; j++)
                if(s[i][j]=='$')
                    printf("$");
                else
                    printf(".");
            printf("
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    table布局与div布局
    HTML一般标签
    jquery
    PDO对象
    分页例题
    投票练习
    封装 链接数据库类
    访问数据方法
    面相对象多态
    面向对象
  • 原文地址:https://www.cnblogs.com/yspworld/p/4746343.html
Copyright © 2020-2023  润新知