其他分享
首页 > 其他分享> > B1027 打印沙漏 (20 分)

B1027 打印沙漏 (20 分)

作者:互联网

在这里插入图片描述

#include <cstdio>
#include <cmath>
int main()
{
    int SumChar,x; //SumChar:一共的符号数 x最大的底边需要的符号数
    char c; //c:符号
    int row;//一共有多少行
    scanf("%d %c",&SumChar,&c);
    x = (int)sqrt(2.0*(1+SumChar))-1;
    if(x%2==0)
        x = x - 1;
    int used = (x+1)*(x+1)/2 - 1;
    for(int i=x;i>=1;i=i-2)
    {
        for(int j=0;j<(x-i)/2;j++)
        {
            printf(" ");
        }
        for(int j=0;j<i;j++)
        {
            printf("%c",c);
        }
        printf("\n");
    }
    
    for(int i=3;i<=x;i+=2)
    {
        for(int j=0;j<(x-i)/2;j++)
            printf(" ");
        for(int j=0;j<i;j++)
            printf("%c",c);
        printf("\n");
    }
//     //输入正三角
//     for(int i=0;i<x;i=i+2)
//     {
//         for(int j=0;j<i/2;j++)
//             printf(" ");
//         for(int k=0;k<x-i;k++)
//             printf("%c",c);
//         printf("\n");
//     }
//     //输入倒三角
//     for(int i=x-3;i>0;i=i-2)
//     {
//         for(int j=0;j<i/2;j++)
//             printf(" ");
//         for(int k=0;k<(x-i);k++)
//             printf("%c",c);
//         printf("\n");
//     }
    printf("%d\n",SumChar-used);
    return 0;
}

标签:20,沙漏,符号,int,一共,B1027,SumChar,printf,include
来源: https://blog.csdn.net/weixin_43118073/article/details/113843848