L1-002 打印沙漏
题目 打印沙漏
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
//由推导可得 第n个图形 共需要2n^2-1个* 最外层有2n-1个*
const int N=1010;
int var;
char chr;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>var>>chr;
int n;
for(int i=1;i<N;i++){
if((2*i*i-1)>var){
n=i-1;
break;
}
}
int shengyu=var-(2*n*n-1);
int topnum=2*n-1;
// cout<<shengyu<<" "<<topnum;
for(int i=n;i>0;i--){
for(int j=0;j<n-i;j++) cout<<" ";
for(int j=0;j<2*i-1;j++) cout<<chr;
cout<<endl;
}
for(int i=2;i<=n;i++){
for(int j=0;j<n-i;j++) cout<<" ";
for(int j=0;j<2*i-1;j++) cout<<chr;
cout<<endl;
}
cout<<shengyu;
return 0;
}
同类题型
视频讲解
⬅️ L1-001 Hello World 🏠 00-天梯赛 ➡️ L1-003 个位数统计
💬 评论