**#include <bits/stdc++.h>
using namespace std;
int n;
char p;
void f(int num){
int flag=0;
for(int i=num;i>0;i-=2){//都是奇数
for(int j=0;j<flag;j++){cout<<" “;}//先输出空格
flag++;//记录输出几个空格
for(int j=0;j<i;j++){cout<<p;}//输出星星
cout<<endl;
}
flag=flag-2;
for(int i=3;i<=num;i+=2){
for(int j=0;j<flag;j++){cout<<” ";}
flag–;
for(int j=0;j<i;j++){cout<<p;}
cout<<endl;
}
return ;
}
int pd(int kk){//kk 判断kk个符号 能产生几行沙漏
int num=1,sum=1;
while(sum<=n){//sum 是num行的沙漏能有多少星星 星星超过n就结束循环
num=num+2;
sum=sum+num2;
}//结束时星星是超的,所以要回退一步
sum=sum-2num;
num-=2;//back
return num;//返回一个行数
}
int main(){
cin>>n>>p;
int ans=pd(n);
f(ans);//输出ans行的沙漏
return 0;
}
**
LL 代码库-打印沙漏
最新推荐文章于 2025-05-28 10:48:32 发布