小明在X星球的城堡中发现了如下图形和文字:
rank=5
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
ran=6
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*Print the figures
2023.12.5
*/
#include <iostream>
using namespace std;
#define N 70
void f(char a[][N], int rank, int row, int col) {
if (rank == 1) {
a[row][col] = '*';
return;
}
int w = 1;
int i;
for (i = 0; i < rank - 1; i++)
w *= 2;
f(a, rank - 1, row, col + w / 2);//a,5,0,16,处理顶上的三角形
f(a, rank - 1, row + w / 2, col);//a,5,16,0,处理左下角
f(a, rank - 1, row + w / 2, col + w);//a,5,16,16,处理右下角
}
int main() {
char a[N][N];
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++) a[i][j] = ' ';
f(a, 5, 0, 0);
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) printf("%c", a[i][j]);
printf("\n");
}
return 0;
}