Codeup——577 | 问题 D: 沙漏图形 tri2str [1*+]
作者:互联网
题目描述
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例
3
输出样例
* * *
* *
*
* *
* * *
数据规模 1<= n <=50
思路:先把这个题目看成是打印一个倒三角,即只先从沙漏的上部分找规律,会发现在每一行中,奇数打印星号,偶数打印空格,且每行都有(2*(n-i)-1)个元素,把上部分弄好后就在下部分找规律,上下部分基本一样。
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int n,i,j,blank,m;
cin >>n;
m=n;
blank=0;
for(i=0;i<n;i++){
for(j=0;j<blank;j++)
cout <<' ';
blank++;
for(j=0;j<(2*m-1);j++){
if((j+1)%2!=0)
cout <<'*';
else
cout <<' ';
}
m--;
cout <<endl;
}
blank-=2;
m=2;
for(i=0;i<n-1;i++){
for(j=0;j<blank;j++)
cout <<' ';
blank--;
for(j=0;j<(2*m-1);j++){
if((j+1)%2!=0)
cout <<'*';
else
cout <<' ';
}
m++;
if(i!=n-2)
cout <<endl;
}
}
标签:tri2str,沙漏,星号,打印,577,int,blank,include 来源: https://blog.csdn.net/qq_44888152/article/details/106598994