zoukankan      html  css  js  c++  java
  • PAT乙级 1027. 打印沙漏(20)

    1027. 打印沙漏(20)

    时间限制
    200 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

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

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

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

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

    输入格式:

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

    输出格式:

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

    输入样例:
    19 *
    
    输出样例:
    *****
     ***
      *
     ***
    *****
    2


     1 #include<stdio.h>
     2 int main()
     3 {
     4     int N=17,n,sum=0,count=0,top=0,i,j,s,top_first;
     5     char star='*';
     6     char space=' ';
     7     scanf("%d %c",&n,&star);
     8     if(n<=6)  
     9         printf("%c
    %d",star,n-1);
    10     else {
    11         if(n%2) N=n/2+1;
    12         else      N=n/2;
    13         while(sum<=N)//sum of top half
    14         {
    15             sum=sum+(2*count+1);
    16             count++;
    17         } count--;
    18         sum=sum-(2*count+1);
    19 
    20         
    21         top_first=2*count-1;
    22         top=top_first;
    23         for(i=0;i<count;i++)
    24         {
    25             for(s=0;s<(top_first-top)/2;s++)
    26                 printf("%c",space);
    27             for(j=0;j<top;j++)    
    28                 printf("%c",star);
    29             printf("
    ");
    30             top-=2;
    31         }
    32         top=3;
    33         for(i=0;i<count-1;i++)
    34         {
    35             for(s=0;s<(top_first-top)/2;s++)
    36                 printf("%c",space);
    37             for(j=0;j<top;j++)
    38                 printf("%c",star);
    39             printf("
    ");
    40             top+=2;
    41         }
    42         printf("%d
    ",n-(sum*2-1) );
    43     }
    44     return 0;
    45 }

    1.以后声明变量一定要注意阿,这次就算变量声明的有点乱

    2. 17行的代码写到19行去了,也是崩溃。。小错误

  • 相关阅读:
    GOOGLE域名存在漏洞,可以用来建立钓鱼站点(目前已临时被封闭)
    今天的工作
    2006的最后一天,于2007年的第一天记录
    上班去
    顶你个肺
    勇气!
    东京审判
    远离我家
    8.3不仅仅是forfun
    我又对自己说,要好好写写我的文字了
  • 原文地址:https://www.cnblogs.com/zle1992/p/5944743.html
Copyright © 2011-2022 走看看