TIOJ-1658

給$n, b$,畫出邊長為$n$的實心(b=1)或空心(b=0)三角形。

$n, b\le 20$


圖形去原題看範測

畫圖形一直都是練習語法的題目中算困難的了。
基本上要看出規律:由上開始第$i$行由1個*和不等的*(如果實心)和1個*組成,而每行都會剛好有$2\times i - 1$個*。

特判一下第一行跟最後一行就好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
-------------- | /
| | /
| | /
| * |/ | | ------ *
| | | | / \
| | |\ | | | |\ |
\ | | | \ | | | | \ |
\ | | | \ | | \ / \ |
V | | \ \__/| ----- \ |
*/
#include <iostream>
using namespace std;

int main() {
int n, b;
while(cin >> n >> b) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n - i - 1; j++)
cout << ' ';
cout << '*';
for(int j = 0; j < (i << 1) - 1; j++)
cout << (b||i==n-1 ? '*' : ' ');
if(i)
cout << '*';
cout << '\n';
}
}

return 0;
}