原题链接
本地可以通过,但是实际交上去只有 15 分的代码:
#include <bits/stdc++.h>
#define int long long
using namespace std;
char s;
int n;
int sl(int a){
if(a==1) return 1;
if(a==0) return 0;
int i=3;
while(a>=0){
a-=(i+i);
i+=2;
}
i-=2+2;
return i;
}
void xsb(){
int k=sl(n);
int l=k;
while(l>0){
for(int i=l;i<k;i+=2) putchar(' ');
for(int i=1;i<=l;i++){
putchar(s);
--n;
}
putchar('\n');
l-=2;
}
l=3;
while(l!=k+2){
for(int i=l;i<k;i+=2) putchar(' ');
for(int i=1;i<=l;i++){
putchar(s);--n;
}
putchar('\n');
l+=2;
}
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
cin>>n>>s;
xsb();
if(n!=0) cout<<n;
return 0;
}
个人分析:打印部分正确,生成参数正确,但是评测机上跑的时候函数 xsb() 还没运行玩后面的语句就运行了,但本地是对的。求大佬帮调qwq