PTA乙级 (1027 打印沙漏 (20分))
1027 打印沙漏 (20分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int n,min=1001,c,d,e=0;
char chr,chr1=' ';
cin>>n>>chr;
for(int i=1;i<=23;i++)
{
if((n-(2*i*i-1))<min&&(n-(2*i*i-1)>=0)) {
c=i;
min=n-(2*i*i-1);
}
}
for(d=2*c-1;d>=1;d-=2)
{
if(d!=2*c-1) for(int j=1;j<=e;j++) cout<<chr1;
for(int j=1;j<=d;j++) cout<<chr;
cout<<endl;
if(d!=1) e++;
}
for(d=3;d<=2*c-1;d+=2)
{
e--;
if(d!=2*c-1) for(int j=1;j<=e;j++) cout<<chr1;
for(int j=1;j<=d;j++) cout<<chr;
cout<<endl;
}
cout<<min;
return 0;
}
天晴了,起飞吧

浙公网安备 33010602011771号