题目分析:
1-首先题目有点儿问题,,结果是0如果不输出第三个测试点过不去的
2-也就简单的模拟吧。假设上面需要n行,则需要2*n^2-1个符号,找到满足的n,按要求打印就好啦
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
getchar();//space
char ch=getchar();//sign
int x=floor(sqrt((n+1)/2));
for(int i=0;i<x;i++){
for(int j=0;j<i;j++){
cout<<" ";
}
int cnt=(x-i)*2-1;
for(int j=0;j<cnt;j++){
putchar(ch);
}
cout<<endl;
}
for(int i=2;i<=x;i++){
for(int j=0;j<x-i;j++){
cout<<" ";
}
int cnt=i*2-1;
for(int j=0;j<cnt;j++){
putchar(ch);
}
cout<<endl;
}
int res=n-x*x*2+1;
if(res!=0){
cout<<res;
}else{
cout<<0;
}
return 0;
}