观察样例,按照规则绘制图案。
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(""); } }