B1027 打印沙漏 (20 分)
作者:互联网
#include <cstdio>
#include <cmath>
int main()
{
int SumChar,x; //SumChar:一共的符号数 x最大的底边需要的符号数
char c; //c:符号
int row;//一共有多少行
scanf("%d %c",&SumChar,&c);
x = (int)sqrt(2.0*(1+SumChar))-1;
if(x%2==0)
x = x - 1;
int used = (x+1)*(x+1)/2 - 1;
for(int i=x;i>=1;i=i-2)
{
for(int j=0;j<(x-i)/2;j++)
{
printf(" ");
}
for(int j=0;j<i;j++)
{
printf("%c",c);
}
printf("\n");
}
for(int i=3;i<=x;i+=2)
{
for(int j=0;j<(x-i)/2;j++)
printf(" ");
for(int j=0;j<i;j++)
printf("%c",c);
printf("\n");
}
// //输入正三角
// for(int i=0;i<x;i=i+2)
// {
// for(int j=0;j<i/2;j++)
// printf(" ");
// for(int k=0;k<x-i;k++)
// printf("%c",c);
// printf("\n");
// }
// //输入倒三角
// for(int i=x-3;i>0;i=i-2)
// {
// for(int j=0;j<i/2;j++)
// printf(" ");
// for(int k=0;k<(x-i);k++)
// printf("%c",c);
// printf("\n");
// }
printf("%d\n",SumChar-used);
return 0;
}
标签:20,沙漏,符号,int,一共,B1027,SumChar,printf,include 来源: https://blog.csdn.net/weixin_43118073/article/details/113843848