PTA-数据结构-自测-1
来源:互联网 发布:telnet端口 登录 内网 编辑:程序博客网 时间:2024/05/17 23:24
1.题目描述
——原题链接点这里——
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*****
***
*
***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤\le≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:
19 *
输出样例:
*****
***
*
***
*****
2
2.代码
#include<stdio.h>int main(){ int i, n, m; char c; scanf("%d %c", &i, &c); if(i == 1) printf("%c\n0\n", c); else{ for( n=3, m=1; m<=i; n++, n++ ) m += 2*n; n -= 4; int t; for( t=n; t>1; t--, t-- ){ int b = (n-t) / 2; int q = t; while( b-- ) printf(" "); while( q-- ) printf("%c", c); b = (n-t) / 2; printf("\n"); } int b, f; for( f=1, b=(n-1)/2; f<=n; f++, f++, b--){ int bt = b; while( bt-- ){ printf(" "); } int q = f; while( q-- ) printf("%c", c); printf("\n"); } printf("%d\n", i - ((1+n)*(1+n)/2-1)); } return 0;}
3.运行结果
4.总结
题目用时1个小时。
回头来看,这是一道很基础的题目,为什么我用了一个小时才做完啊= =。
问题的难度集中于“沙漏”图形的输出。图形以中线为分割,上下两部分采用了不同的输出语句块,增加了代码的复杂度。
希望我能够坚持学习数据结构,坚持刷题,不要再虚度光阴。千里之行,始于足下!
0 0
- PTA-数据结构-自测-1
- PTA-自测-5 Shuffling Machine
- 数据结构起步能力自测1-打印沙漏
- PTA数据结构5-1,5-2
- PTA自测-4 Have Fun with Numbers
- PTA自测-2 素数对猜想
- PTA-自测-4 Have Fun with Numbers
- 数据结构能力自测
- 数据结构--绪论自测题
- PTA 数据结构2-4
- PTA 5-1 是否同一棵二叉搜索树(数据结构)
- PTA 数据结构 6-1 循环单链表区间删除
- PTA自测-3 数组元素循环右移问题
- PTA系统自测题-打印沙漏 (python 3)
- PTA平台 自测-3 数组元素循环右移问题
- PTA自测-3 数组元素循环右移问题
- [PTA MOOC] 自测-5 Shuffling Machine(20 分)
- 浙大PTA数据结构Pop Sequence
- NestedScrollingParent, NestedScrollingChild 详解
- Linux MASM汇编
- jquery post时content-type的几种取值
- Elasticsearch是什么以及核心概念
- xdoj 1046: 高精度模板综合测试
- PTA-数据结构-自测-1
- 解决微信小程序ios请求ssl错误问题 windows server 2008 R2默认ssl2.0 改成1.2的
- Servlet3.0下@WebFilter注解配置Filter
- 在List查找指定名称的成员的两种写法和搜索所有指定类物体的写法
- 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
- 数据库
- ubuntu下caffe实战---mnist数据集测试
- 初学编程-----数组运算
- CSU OJ:1427 谭松松的旅游计划(LCA)