• HDU2091 空心三角形


    空心三角形

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 66621    Accepted Submission(s): 17555

    Problem Description

    把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。

    Input

    每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。

    Output

    每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。

    Sample Input

    X 2 A 7 @

    Sample Output

    X XXX   A A A A A A A A A A A AAAAAAAAAAAAA

    这题大致题意很简单,但是要注意不是每次打印出一个空心三角形图案就输出一个空行,应该在判断会打印下一个三角形情况下再输出一个空行,而我由于一开始没考虑n=1的情况,WA了几次

    代码如下:

    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    int main(){
        int n;
        char ch;
        bool flag=0;
        while((cin>>ch),(ch!='@')){
                if(flag) printf("
    ");
                flag=1;
                cin>>n;
                if(n==1) printf("%c
    ",ch);
                else{
                int b=n-2;
                int c=1;
                for(int i=1;i<=n-1;i++) printf(" ");
                printf("%c
    ",ch);
                for(int i=2;i<=n-1;i++){
                    for(int j=1;j<=b;j++) printf(" ");
                    printf("%c",ch);
                    for(int j=1;j<=c;j++) printf(" ");
                    printf("%c
    ",ch);
                    b--;
                    c+=2;
                }
                for(int k=1;k<=2*n-1;k++){
                    printf("%c",ch);
                    if(k==2*n-1) printf("
    ");    
                } 
            }
        }
        return 0;
    }
    天晴了,起飞吧
  • 相关阅读:
    作业2 身份认证(正心13)
    ubuntu16内核升级过程遇到的问题
    「」
    「loj
    「一个经典问题的另一个推导方法」
    「loj
    「XXI Opencup GP of Tokyo」 Count Min Ratio
    「codeforces
    「codeforces
    「Dominator Tree」
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/11280232.html
Copyright © 2020-2023  润新知