1027. 打印沙漏
题目中的星号和markdown编辑器冲突了,请点上边链接去源地址ba!
解题思路
计算每一行的符号数和空格数,可得这是一个等差数列求和的数学知识,要下课了,以后补上详细的吧
代码
#include <cstdio>
#include <cmath>
int main() {
int n;
char ch[10];
scanf("%d%s", &n, ch);
int x = sqrt((n + 1) / 2);
for (int i = x; i >= 1; --i) {
for(int j=0;j<x-i;j++)printf(" ");
for (int j = 0; j < i * 2 - 1;j++)printf("%s", ch);
printf("\n");
}
for (int i = 2; i <= x; ++i) {
for(int j=0;j<x-i;j++)printf(" ");
for (int j = 0; j < i * 2 - 1;j++)printf("%s", ch);
printf("\n");
}
printf("%d",n-((x*x)*2-1));
return 0;
}
本文介绍了一个打印沙漏图案的C语言程序实现。通过输入行数和填充字符,程序能够准确地绘制出沙漏形状。利用等差数列的数学原理确定每行的符号和空格数量,最终形成对称的沙漏效果。
4405

被折叠的 条评论
为什么被折叠?



