1 条题解

  • 0
    @ 2025-9-9 23:46:00

    C :

    #include<stdio.h>
    #include<string.h>
    #include<ctype.h>
    char c;//n正方形边长,r竖线粗
    void printco(int r)
    {
    	while(r--)putchar(c);
    }
    void printbc(int n)
    {
    	while(n--)putchar(c);
    }
    void printspace(int s)
    {
    	while(s--)putchar(' ');
    }
    int main()
    {
    	int i,j,h,n,r,t;
    	char s[9];
    	while(gets(s))
    	{
    		c=s[0],h=strlen(s)==3?s[2]-'0':10*(s[2]-'0')+s[3]-'0';
    		n=h-(h-3)/2-3;
    		r=h/6+1;
    		printspace(r);
    		printbc(n);
    		putchar('\n');
    		for(i=0;i<h-3-n;i++)
    		{
    			printco(r);
    			printspace(n);
    			printco(r);
    			putchar('\n');
    		}
    		printspace(r);
    		printbc(n);
    		putchar('\n');
    		for(i=0;i<n;i++)
    		{
    			printco(r);
    			printspace(n);
    			printco(r);
    			putchar('\n');
    		}
    		printspace(r);
    		printbc(n);
    		putchar('\n');
    	}
    	return 0;
    }
    

    C++ :

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<ctype.h>
    #include<algorithm>
    #include<stack>
    #include<queue>
    #include<set>
    #include<map>
    #include<math.h>
    #include<vector>
    #include<deque>
    #include<list>
    #define INF 0x7fffffff
    #define inf 0x3f3f3f3f
    using namespace std;
    int top,n,high,start;
    char str;
    int main()
    {
        while(scanf("%c%d",&str,&n)!=EOF)
        {
            getchar();
            start=n/6+1;
            if((n-3)%2==0)
                top=(n-3)/2;
            else
                top=(n-3)/2+1;
            high=n-3-top;
            for(int i=0; i<start; i++)
                printf(" ");
            for(int i=0; i<top; i++)
                printf("%c",str);
            printf("\n");
            for(int j=1; j<=high; j++)
            {
                for(int i=0; i<start; i++)
                    printf("%c",str);
                for(int i=0; i<top; i++)
                    printf(" ");
                for(int i=0; i<start; i++)
                    printf("%c",str);
                printf("\n");
            }
            for(int i=0; i<start; i++)
                printf(" ");
            for(int i=0; i<top; i++)
                printf("%c",str);
            printf("\n");
            for(int j=1; j<=top; j++)
            {
                for(int i=0; i<start; i++)
                    printf("%c",str);
                for(int i=0; i<top; i++)
                    printf(" ");
                for(int i=0; i<start; i++)
                    printf("%c",str);
                printf("\n");
            }
            for(int i=0; i<start; i++)
                printf(" ");
            for(int i=0; i<top; i++)
                printf("%c",str);
            printf("\n");
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    938
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者