观察样例,按照规则绘制图案。
n=1:
* *** *****
n=2:
*
***
*****
* *
*** ***
***** *****
方法一的代码:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1,p=_____(1)_____;i<=n;i++)//i表示一共有几层
{
for(int k=1,t=____(2)___;k<=3;k++,t-=2)//k表示每层有3行,t表示三角形之间的空格数
{
cout<<string(p--,' ');//每行最左边的空格数
cout<<string(2*k-1,'*');
for(int j=2;j<=_____(3)_____;j++)
cout<<string(_____(4)______,' ')<<string(____(5)_____,'*');
cout<<endl;//每行换行
}
}
}
方法二的代码:
#include <cmath>
#include <cstdio>
using namespace std;
bool InTriangleQ(int h, int x, int y) { return abs(x - h + 1) <= y; }
bool Draw(int n, int x, int y) {
return InTriangleQ(____1____, x, y) &&
InTriangleQ(3, ____2____, ____3____);
}
int main() {
int n;
scanf("%d", &n);
for (int y = 0; y < ____4____; y++) {
for (int x = 0; x < ____5____; x++) {
printf(Draw(n, x, y) ? "*" : " ");
}
puts("");
}
}