PAT Basic 1027 打印沙漏 (20 分)

摘要:
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在一行给出1个正整数N和一个符号,中间以空格分隔。输入样例:19*输出样例:*****************2#includeusingnamespacestd;intmain(){intN,line,tmpCh,tmpBl,tmpMax;charch;cin˃˃N˃˃ch;/**推导公式:2*k*k-1*/for{if{line=i-1;break;}}tmpMax=2*line-1;for{tmpCh=2*i-1;tmpBl=/2;forcout˂˂"";forcout˂˂ch;/**注意符号后面空格不能输出*/cout˂˂endl;}for{tmpCh=2*i-1;tmpBl=/2;forcout˂˂"";forcout˂˂ch;cout˂˂endl;}cout˂˂;system;return0;}

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

19 *

输出样例:

*****
 ***
  *
 ***
*****
2
#include <iostream>
using namespacestd;
intmain()
{
    int N,line,tmpCh,tmpBl,tmpMax;charch;
    cin>>N>>ch;
    /**推导公式:2*k*k-1*/
    for(int i=1;;i++){
        if(2*i*i-1>N){
            line=i-1;
            break;
        }
    }
    tmpMax=2*line-1;
    for(int i=line;i>=1;i--){
        tmpCh=2*i-1;
        tmpBl=(tmpMax-tmpCh)/2;
        for(int j=0;j<tmpBl;j++) cout<<" ";
        for(int j=0;j<tmpCh;j++) cout<<ch;
        /**注意符号后面空格不能输出*/
        cout<<endl;
    }
    for(int i=2;i<=line;i++){
        tmpCh=2*i-1;
        tmpBl=(tmpMax-tmpCh)/2;
        for(int j=0;j<tmpBl;j++) cout<<" ";
        for(int j=0;j<tmpCh;j++) cout<<ch;
        cout<<endl;
    }
    cout<<(N-2*line*line+1);
    system("pause");
    return 0;
}

免责声明:文章转载自《PAT Basic 1027 打印沙漏 (20 分)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇text-indent无效解决方案smb(ms17-010)远程命令执行之msf下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Java读取图片和EXIF信息

后台需要读取客户端上传的图像//上传图像的宽度intoriginalheight=originalImg。获取高度();无论是在Windows中直接查看上述代码还是图像,都会获得宽度大于高度的信息。使用上述代码,可以直接读取宽度和高度。该值不考虑图像翻转方向,而是读取图像的EXIF信息。...

layui 学习笔记(四) 复杂表头前台Excel导出

merges':mergeConf,'!cols':colConf,'!rows‘:rowConf}});}@...

java.net.URISyntaxException的解决办法

直接采用Stringurl=“http:count=1”;HttpGethttpget=新的HttpGet(url);HttpResponseresponse=client.execute(httpget);例如,“|”&amp;因此,不能直接使用String而不是URI来访问。然后我们可以使用URL生成URI的方法来解决这个问题。代码如下:URLu...

Android 帧动画使用

本文介绍使用AnimationDrawable类来实现动画效果。oneshot="false",表示让动画一直循环播放下去。.backgroundasAnimationDrawableani.start()当动画正在播放时,调用start()方法是不会影响当前播放的。˃android:oneshot="true",动画播放1次后就会自行停止并保持在最后一帧。...

Ubuntu 18.04 安装微信(附企业微信)

Ubuntu软件市场也是有的,所以安全性不用担心开源地址:https://github.com/geeeeeeeeek/electronic-wechat下面介绍几种安装的方式:1.直接解压运行先选择你系统版本:解压一下:tar-zxvfxxx.tar.gz算了,还是简单为新手分析一下==》tar命令可以解包.tar和.tar.gz。为啥我的没有微信图标?...

pycharm最新版本激活码(永久有效) python安装教程

输入python以查看当前版本的python。您可以输入“print'helloworld”并单击下载以启动PyCharm://pan.baidu.com//1eVdm4dUPKn3ZY_Xj kqNXw提取代码:l83f2,下载破解补丁(版本2018.3.5)下载链接至地址:...