• 1027. 打印沙漏(20)


    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

    *****
     ***
      *
     ***
    *****
    

    所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

    给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

    输入格式:

    输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔。

    输出格式:

    首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

    输入样例:

    19 *
    

    输出样例:

    *****
     ***
      *
     ***
    *****
    2
    #include<stdio.h>
    #include<stdlib.h>
    
    struct Sha
    {
        int sum;  //字符总数
        int cnt;  //第一行字符个数
    } xing[100];
    int main()
    {
        int i,j,k;
        int Sum=1,index=1;
        int n,yu,cnt,h;
        char c;
        scanf("%d %c",&n,&c);
        xing[0].cnt = 1; 
        xing[0].sum = 1;
        for( i=3; i<=60; i+=2) //先求出所以符合的数 1,7,17,35……
        {
            Sum += 2*i;
            xing[index].cnt = i;
            xing[index].sum = Sum;
            index++;
        }
        for( i=0; i<30; i++)
        {
            if( n>=xing[i].sum && n<xing[i+1].sum) //找出合适的数
            {
                yu = n-xing[i].sum;
                cnt = xing[i].cnt;
                break;
            }
        }
        for( j=0; j<i+1; j++)  //输出上半部分
        {
            h=j;  //空格个数
            for( k=0; k<cnt; k++)
            {
                if( h )
                {
                    printf(" ");
                    h--;
                }
                else printf("%c",c);
            }
            cnt -= 1;
            printf("
    ");
        }
        cnt = 3;  //下半部分*字符个数初始化为3
        for( j=1; j<=i; j++) //输出下半部分
        {
            h = i-j;  //空格个数
            while(h--)
                printf(" ");
            for( k=0; k<cnt; k++)
                printf("%c",c);
            cnt += 2;
            printf("
    ");
        }
        printf("%d
    ",yu); //输出剩余数
        return 0;
    }
    在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
  • 相关阅读:
    thrift java first demo
    找工作的一些感悟——前端小菜的成长
    常见标签的默认属性值及相互作用——关于CSS reset的思考
    CSS清浮动处理(Clear与BFC)
    简单JavaScript模版引擎优化
    最简单的JavaScript模板引擎
    JavaScript正则表达式下——相关方法
    JavaScript 正则表达式上——基本语法
    node.js调试
    node.js module初步理解
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/8487117.html
Copyright © 2020-2023  润新知