物联网网站的建设和维护,网页制作个人简介页面模板,玉器网站模版,物流网站的建设1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”#xff0c;要求按下列格式打印 所谓“沙漏形状”#xff0c;是指每行输出奇数个符号#xff1b;各行符号中心对齐#xff1b;相邻两行符号数差2#xff1b;符号数先从大到小顺序…1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”要求按下列格式打印 所谓“沙漏形状”是指每行输出奇数个符号各行符号中心对齐相邻两行符号数差2符号数先从大到小顺序递减到1再从小到大顺序递增首尾符号数相等。 给定任意N个符号不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式:
输入在一行给出1个正整数N≤1000和一个符号中间以空格分隔。 输出格式:
首先打印出由给定符号组成的最大的沙漏形状最后在一行中输出剩下没用掉的符号数。 输入样例:
19 * 输出样例: 2
#includestdio.h
#includeiostream
#includemath.h
using namespace std;
int main()
{int n;char ch;cinnch;int numsqrt((n1)/2);//num是层数上方三角形的字符个数是层数的平方则一个沙漏大小是num的平方*2//n1/2表示一个三角形的最大字符数以此来求层数for(int i0;inum;i)//确定层数{for(int k0;ki;k)//输出空格{cout ;}for(int j(num-i)*2-1;j0;j--)//输出字符{coutch;}coutendl;}for(int i0;inum-1;i){for(int knum-(i2);k0;k--){cout ; }for(int j0;j2*(i2)-1;j){coutch;}coutendl;}coutn-(num*num*2-1);}