1073. 沙漏
问题描述
赵老师最近在编一个操作系统,正好编到鼠标的繁忙状态,需要一个沙漏符号,正好大家都在学 C++ ,你的任务就是帮赵老师编一个程序打印一个沙漏符号。
输入
一个整数 nn ,符号的行数(保证 n 是大于 1 的奇数)。
输出
沙漏符号,使用 *
打印。
样例
输入
复制
5
输出
复制
************ *****
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;for(int i=n;i>=n/2+1;i--)//这里打印上班个图像,即前3行(n/2+1 )=3{for(int x=n;x>i;x--)//打印空格,因为上半个图形空格是递减,所以这里用减减 {cout<<" ";}for(int j=n;j<=2*i-1;j++)//这个是递减,前面数值i是递减,规律是7-5-3-1所以从起始值开始,打印范围一步一步缩小 {cout<<"*";}cout<<endl;}for(int i=1;i<=n/2;i++)//这里打印上班个图像,即前2行n/2=2;{for(int x=1;x<=n/2-i;x++)//这里下半个空格是递减,借助变量i在增加,使得x打印的空格范围变小 {cout<<" ";}for(int y=1;y<=2*i+1;y++)//这里符号*呈现递加,规律是1357,即2*i+1; {cout<<"*";}cout<<endl;}return 0;
}