写在前面
- 行数计算技巧
row = (n+1)/2;
- 行列字符输出技巧控制
- 题目相对简单,15分钟a题(手生、困)
测试用例
input:
10 a
output:
ac代码
- 双层循环,逻辑起决定性作用
#include <iostream>
using namespace std;
int main ()
{
int n, row=0;
char ch;
scanf("%d %c", &n, &ch);
row = (n+1)/2;
for(int i=0; i<row; i++)
{
for(int j=0; j<n; j++)
{
if((i==0) || (i==row-1)) printf("%c", ch);
else
{
if((j==0) || (j==n-1)) printf("%c", ch);
else printf(" ");
}
}
if(i<row-1) printf("\n");
}
return 0;
}
学习代码
- 分3步,首行、中间、尾行。循环起决定性作用
- 相对容易理解
#include <iostream>
using namespace std;
int main() {
int N;
char c;
cin >> N >> c;
int t = N / 2 + N % 2;
for (int i = 0; i < N; i++)
cout << c;
cout << endl;
for (int i = 0; i < t - 2; i++) {
cout << c;
for (int k = 0; k < N - 2; k++)
cout << " ";
cout << c << endl;
}
for (int i = 0; i < N; i++)
cout << c;
return 0;
}