题目描述
画图形,是我们需要研究的一个重要课程。菱形好似练的差不多了啊。那么,什么东西,能够有些新意呢?
弄个漂亮点的图形吧,空心六边形进入了我们的视线。那么我们就打印一个正六边型吧。
根据输入的边长,输出对应大小的正六边型。
输入
只有一个正整数 𝑛(0<𝑛<20n(0<n<20 ),代表正六边形的边长。
输出
是一个边长为 𝑛n 的正多边形。
样例输入
5
样例输出
*****
* *
* *
* *
* *
* *
* *
* *
*****
AC代码
#include <iostream>
using namespace std;
int c,s,p;
bool f(int w){
if(w!=1){
return true;
}
return false;
}
int main()
{
long long n;
cin>>n;
if(n==1){
cout<<"*";
return 0;
}
c=n-1,s=n;
for(int i=1;i<=n;i++){
if(i==1){
for(int j=1;j<=c;j++){
cout<<" ";
}
for(int k=1;k<=n;k++){
cout<<"*";
}
c–;
p=1;
cout<<endl;
}else p=0;
if(f(p)){
for(int j=1;j<=c;j++){
cout<<" ";
}
c–;
cout<<"*";
for(int j=1;j<=s;j++){
cout<<" ";
}
cout<<"*";
s+=2;
cout<<endl;
}
}
c=1,s=(n-2)*2+n-2;
for(int i=1;i<n-1;i++){
for(int j=1;j<=c;j++){
cout<<" ";
}
cout<<"*";
for(int j=1;j<=s;j++){
cout<<" ";
}
cout<<"*";
cout<<endl;
c++;
s-=2;
}
for(int i=1;i<=n-1;i++){
cout<<" ";
}
for(int i=1;i<=n;i++){
cout<<"*";
}
return 0;
}
![打卡信奥刷题(3584)用C++实现信奥题 P11523 [THUPC 2025 初赛] 摊位分配-171主机测评](https://www.171host.com/wp-content/uploads/2026/09/20260922020544-6ab1e2783b78e-220x150.png)


