题目:
见描述!!!
输入格式:
输入正整数n
输出格式:
平行四边形上方不能有空行,左边不能有空列
输入样例1:
2
输出样例1:
*
**
*
输入样例2:
3
输出样例2:
*
**
***
**
*
分析:
把目标平行四边形填充成对应行数和列数的矩形,例如 n=3,通过观察很容易知道 矩阵的行= 2*n-1;矩阵的列=n
***
***
***
***
***
然后再想办法挖掉右上方和左下方的部分,那么怎么实现呢?
打印上半部分:
if (j<=i && i<=n) { //打印上半部分
printf("*");
}
处理下半部分的空格:
else if (i>n && j<=(i%n)) { //打印下半部分的空格
printf(" ");
}
打印下半部分的星号:
else if (i > n && j > (i%n)) {
printf("*");
}
处理最后一行:
if (i!=2*n-1) { //最后一行后面没有换行
printf("\n");
}
全部代码:
#include <iostream>
#include <cstdio>
using namespace std; //用sort需要加上这句
int n;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= 2*n-1; i++) { //打印行
for (int j = 1; j <= n; j++) { //打印列
if (j<=i && i<=n) { //打印上半部分
printf("*");
}
else if (i>n && j<=(i%n)) { //打印下半部分的空格
printf(" ");
}
else if (i > n && j > (i%n)) {
printf("*");
}
}
if (i!=2*n-1) { //最后一行后面没有换行
printf("\n");
}
}
return 0;
}
习惯的表情━━( ̄ー ̄*|||━━