L1-002. 打印沙漏
2018-04-01 16:22
169 查看
题目连接https://www.patest.cn/contests/gplt/L1-002
本题是一道需要从基本机构开始写的,先实现一半的输出,后完成下一半的输出即可。
1:先输出上一半(for循环实现):
2:实现下一半的输出:
3:上下拼接:
完整代码:
本题是一道需要从基本机构开始写的,先实现一半的输出,后完成下一半的输出即可。
1:先输出上一半(for循环实现):
for(i=0; i<N; i++) { for(j=i; j>0; j--) printf(" "); for(j=0; j<2*N-1-2*i; j++) printf("%c",a); printf("\n"); }
2:实现下一半的输出:
for(i=N; i>0; i--) { for(j=i-1; j>0; j--) printf(" "); for(j=0; j<2*N+1-2*i; j++) printf("%c",a); printf("\n"); }
3:上下拼接:
for(i=0; i<N; i++) { for(j=i; j>0; j--) printf(" "); for(j=0; j<2*N-1-2*i; j++) printf("%c",a); printf("\n"); }
for(i=N-1; i>0; i--)///中间重复,故i=N-1消去中间重复部分;
{
for(j=i-1; j>0; j--)
printf(" ");
for(j=0; j<2*N+1-2*i; j++)
printf("%c",a);
printf("\n");
}
完整代码:
#include<stdio.h> #include<math.h> int main() { int n,i,j,N,t=0;///每输出一次a,t++,用来记录输出次数; char a; scanf("%d %c",&n,&a); N=sqrt((n+1)/2); for(i=0; i<N; i++) { for(j=i; j>0; j--) printf(" "); for(j=0; j<2*N-1-2*i; j++) printf("%c",a),t++; printf("\n"); } for(i=N-1; i>0; i--) { for(j=i-1; j>0; j--) printf(" "); for(j=0; j<2*N+1-2*i; j++) printf("%c",a),t++; printf("\n"); } printf("%d\n",n-t); return 0; }
相关文章推荐
- PAT练习集天梯赛L1-002. 打印沙漏--JAVA
- L1-002. 打印沙漏
- L1-002. 打印沙漏
- PAT 乙级1027 天梯 L1-002 打印沙漏
- L1-002 打印沙漏
- L1-002. 打印沙漏
- L1-002. 打印沙漏
- (PTA详解)L1-002. 打印沙漏
- L1 002-打印沙漏
- 团体程序设计天梯赛 L1-002. 打印沙漏
- L1-002. 打印沙漏
- L1-002. 打印沙漏
- 团体程序设计天梯赛-练习集L1-002. 打印沙漏 C++
- L1-002. 打印沙漏
- -团体程序设计天梯赛-练习集L1-002 打印沙漏
- 天梯赛L1-002 打印沙漏
- L1-002. 打印沙漏
- L1-002. 打印沙漏(天梯赛)
- L1-002. 打印沙漏
- L1-002. 打印沙漏