#include <stdio.h>
int main()
{
int n = 1, s = 1, num; //n层数,num星号数,s符号使用数
char ch;
scanf("%d %c", &num, &ch);
//计算余数
while (s <= num)
{
n++;
s = 2 * n * n - 1;
}
n--;
s = 2 * n * n - 1;
//画渗漏上部
int i, j, k; //你现在处于第i层,j为空格数,k为符号数
for ( i = 1; i <= n; i++ )
{
for ( j = 1; j < i; j++ )//画' '
{
printf(" ");
}
for ( k = 1; k <= (n - i) * 2 + 1; k++ )
{
printf("%c", ch);
}
printf("\n");
}
//画沙漏下部
for ( i = 1; i < n; i++ )
{
for ( j = 1; j <= n - i - 1; j++ )//画' '
{
printf(" ");
}
for ( k = 1; k <= (i + 1) * 2 - 1; k++ )
{
printf("%c", ch);
}
printf("\n");
}
printf("%d\n", num - s);
return 0;
}
PTA第L1-002题--沙漏问题
于 2023-04-15 14:24:19 首次发布