给定一个 n ,代表菱形的边长,请输出要求大小的图形(详见样例)。
输入格式
输入一行一个整数 n(2<=n<=100) ,代表菱形的边长(数据保证n为偶数)。
输出格式
输出见样例:
样例输入1
4
样例输出1
/\ /\
/ \ / \
/ / \
/ / \
\ \ /
\ \ /
\ / \ /
\/ \/
/\ /\
/ \ / \ // 上半部分未重合
/ / \
/ / \ //上半部分重合区域
\ \ / //下半部分重合区域
\ \ /
\ / \ / // 下半部分未重合
\/ \/
看完题解后 敲的头疼 图形打印题一般都是找规律。可是没时间敲🤕,前面几道题被击碎了。
#include<iostream>
using namespace std;
int main() {
int n; scanf("%d", &n);
// 上半未重合部分
for (int i = 1; i <= n / 2; i++) {
for (int j = 1; j <= n - i; j++) cout << ' ';
cout << '/';
for (int j = 1; j <= 2 * (i - 1); j++) cout << ' ';
cout << "\\";
for (int j = 1; j <= n - (i * 2 - 1); j++) cout << ' ';
cout << '/';
for (int j = 1; j <= 2 * (i - 1); j++)cout << ' ';
cout << "\\";
puts("");
}
//上半重合部分
for (int i = n / 2 + 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) cout << ' ';
cout << '/';
for (int j = 1; j <= n; j++) cout << ' ';
cout << '/';
for (int j = 1; j <= 2 * (i - 1); j++) cout << ' ';
cout << "\\";
puts("");
}
//下半重合部分
for (int i = 1; i <= n / 2; i++) {
for (int j = 1; j <= i - 1; j++) cout << ' ';
cout << "\\";
for (int j = 1; j <= n; j++)cout << ' ';
cout << "\\";
for (int j = 1; j <= 2 * (n - i); j++) cout << ' ';
cout << '/';
puts("");
}
//下半未重合部分
for (int i = n / 2 + 1; i <= n; i++) {
for (int j = 1; j <= i - 1; j++) cout << ' ';
printf("\\");
for (int j = 1; j <= 2 * (n - i); j++) cout << ' ';
cout << '/';
for (int j = 1; j <= n - (2 * (n - i) + 1); j++)cout << ' ';
printf("\\");
for (int j = 1; j <= 2 * (n - i); j++) cout << ' ';
cout << '/';
puts("");
}
return 0;
}