• 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<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,i=1,j,d,max,sum=1;
     6     char a;
     7     cin>>n>>a;
     8     while(1)
     9     {
    10         i+=2;
    11         if(sum+i*2>n)
    12         {
    13             max=i-2;
    14             d=n-sum;
    15             break;
    16         }
    17         sum+=i*2;
    18 
    19     }
    20     //cout<<max<<endl;
    21     for(i=max; i>=1; i-=2)
    22     {
    23         for(j=0; j<max; j++)
    24         {
    25             if(j<(max-i)/2)
    26                 cout<<" ";
    27             else if(j>=(max+i)/2)
    28                 break;//没说用空格补全 
    29             else
    30                 cout<<a;
    31         }
    32         cout<<endl;
    33     }
    34     for(i=3; i<=max; i+=2)
    35     {
    36         for(j=0; j<max; j++)
    37         {
    38             if(j<(max-i)/2)
    39                 cout<<" ";
    40             else if(j>=(max+i)/2)
    41                 break;//
    42             else
    43                 cout<<a;
    44         }
    45         cout<<endl;
    46     }
    47     cout<<d<<endl;
    48     return 0;
    49 }
    我会一直在
  • 相关阅读:
    目前流行前端几大UI框架排行榜
    vue nginx配置
    快速切换npm源
    vue项目打包部署生产环境
    VScoed Vue settings.json配置
    java获取远程图片分辨率
    Fegin的使用总结
    线程池核心参数
    mysqldump定时任务生成备份文件内容为空解决方法
    对汉字编码
  • 原文地址:https://www.cnblogs.com/zhien-aa/p/5660525.html
Copyright © 2020-2023  润新知