码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1256

时间:2018-05-16 00:41:52      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:sizeof   分享图片   --   输出   col   bsp   ==   out   strong   

画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.
每画一个"8"应空一行,但最前和最后都无空行.

Sample Input
2
A 7
B 8
 Sample Output
技术分享图片
这道题是字符串类型的题目,可以先在草稿本上画出,求出竖线的宽度与给出高度的关系以及横线宽度与高度的关系(考虑高度的奇偶)。在需要输出的图中,就只由第一行图案和第二行图案构成,所以可以先构建两个字符串,再在特定的位置输出字符串。
 1、封装出出两个字符串,设竖线的宽度为x,横线宽度为y,即可写出两个字符串,注意在字符串末尾加"\0";2、一行一行的输出字符串。在特定的位置输出。
#include<stdio.h>
#include<string.h>
char a[500007], b[500007];
int main()
{
    int T;
    scanf("%d", &T);
    while(T--){
        getchar();
        char ch;
        int n;
        scanf("%c%d", &ch, &n);
        int x, y;
        x = 1 + n / 6;
        y = n & 1 ? (n - 3) / 2 : (n - 3) / 2 + 1;////
        memset(a, 0, sizeof(a));
        memset(b, 0, sizeof(b));
        int i, j;
        for(i = 0; i < x; i++)
            a[i] = ‘ ‘;
        for(j = 0; j < y; j++)
            a[x + j] = ch;
        a[x + y] = ‘\0‘;
        for(i = 0; i < x; i++)
            b[i] = ch;
        for(j = 0; j < y; j++)
            b[x + j] = ‘ ‘;
        for(i = 0; i < x; i++)
            b[x + y + i] = ch;
        for(i = 0; i < n; i++){
            if(i == 0 || i == n - 1 || i == (n & 1 ? n / 2 : n / 2 - 1))
                puts(a);
            else
                puts(b);
        }
        if(T != 0)
            puts("");
    }
    return 0;
}

hdu1256

标签:sizeof   分享图片   --   输出   col   bsp   ==   out   strong   

原文地址:https://www.cnblogs.com/qiuhua7777/p/9041917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!