pta编程总结1
7-1 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
代码:#include <stdio.h>
int main()
{
int n;
char c;
scanf("%d %c",&n,&c);
int sum=1;
int i=1;
while(sum<=n)
{
sum+=2(2(i+1)-1);
if(sum<=n)
i++;
}
int j,k;
for(j=0;j<i;j++)
{
for(k=0;k<j;k++)
printf(" ");
for(k=0;k<2(i-j)-1;k++)
{
printf("%c",c);
}
printf("\n");
}
for(j=2;j<=i;j++)
{
for(k=0;k<i-j;k++)
printf(" ");
for(k=0;k<2j-1;k++)
{
printf("%c",c);
}
printf("\n");
}
printf("%d",n-(sum-2(2(i+1)-1)));
return 0;
}
设计思路:1.题目上半部分需要一行比一行少,用while确定给出数目17该打印几行。
2.给出上半部分下半部分只需要跟上半部分对称。
3.for循环打印,注意顶行,printf(“\n”)
4.结尾注意用公式算出剩余星号数目。
运行结果:
pta编程总结1的更多相关文章
- pta 编程题20 旅游规划
		
其它pta数据结构编程题请参见:pta 题目 这个最短路径问题只需要求两点之间的最短路径,因而在Dijikstra算法中当求出目标点的最短路径之后跳出循环即可. #include <iostre ...
 - pta 编程题21 公路村村通
		
其它pta数据结构编程题请参见:pta 题目 这道题考察最小生成树问题,用的是Prim算法. 和Dijkstra算法相比,没有了collect数组,因为dist[v] == 0就代表v被已收录. #i ...
 - pta编程题19 Saving James Bond 2
		
其它pta数据结构编程题请参见:pta 题目 和简单版本不同的是,简单版本只需判断能否到达岸边,而这个版本要求求出最少跳数的路径. 简单版本用dfs实现,而这道题用BFS实现. 注意: 岛半径为7.5 ...
 - pta 编程题16 Saving James Bond - Easy Version
		
其它pta数据结构编程题请参见:pta 题目 主要用到了深度优先搜索. #include <iostream> using namespace std; struct Vertex { i ...
 - pta 编程题15 列出连通集
		
其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; ...
 - pta 编程题14 Huffman Codes
		
其它pta数据结构编程题请参见:pta 题目 题目给出一组字母和每个字母的频数,因为哈夫曼编码不唯一,然后给出几组编码,因为哈夫曼编码不唯一,所以让你判断这些编码是否符合是哈夫曼编码的一种. 解题思路 ...
 - pta 编程题13 File Transfer
		
其它pta数据结构编程题请参见:pta 这道题考察的是union-find并查集. 开始把数组中每个元素初始化为-1,代表没有父节点.为了使树更加平衡,可以让每一个连通分量的树根的负值代表这个连通分量 ...
 - pta 编程题12 堆中的路径
		
其它pta数据结构编程题请参见:pta 这道题考察的是最小堆. 堆是一个完全二叉树,因此可用数组表示,一个下标为 i 的结点的父节点下标为 i / 2,子结点下标为 2i 和 2i + 1. 插入元素 ...
 - pta 编程题10 Root of AVL Tree
		
其它pta数据结构编程题请参见:pta 这道题考察平衡二叉查找树的插入. 为了保证二叉查找树的平衡,当一个结点的左右子树的高度差大于1时就要进行调整. 分为以下四种情况: 插入新节点后,以及旋转之后, ...
 - pta 编程题8 Tree Traversals Again
		
其它pta数据结构编程题请参见:pta 这次的作业考察的是树的遍历. 题目的输入通过栈的pop给出了树的中序遍历的顺序.根据push和pop的顺序构造树的方法为:定义一个变量father来确定父节点, ...
 
随机推荐
- RPM Database 实战详解
			
RPM 是 RPM Package Manager 的简写,是发源于 Red-hat 系统的软件管理工具,所以最初的名字叫做 Red-hat Packager Manager.目前,RPM 已发展成为 ...
 - Python中的 一些常用技巧函数[.join()]
			
1.str.join(item)字符串操作函数,参数item可以是字符串.元组.字典,示例 ','.join('abc') [','.join('abc')] 输出: 'a,b,c'['a', 'b' ...
 - Python——Django-urls.py的作用
			
一.urls.py的作用是保存路径和函数的对应关系 二.函数返回指定内容 from django.urls import path #引用HTTP协议的代码 from django.shortcuts ...
 - jQuery之事件和批量操作、事件委托示例
			
一.常用事件 click(function(){...}) // 点击时触发 focus(function(){...}) // 获得焦点触发 blur(function(){...}) // 失去焦 ...
 - kubernetes 将pod运行在某些特定的节点上,给节点打标签
			
给节点打上标签: kubectl label node <node_name> GPU=true #打上标签 GPU=true 在创建pod的yaml文件时: 添加 nodeSel ...
 - 爬虫 requests 模块
			
requests 模块 介绍 使用requests可以模拟浏览器的请求, 比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) ps: requests库发 ...
 - Spring MVC -- Spring框架入门(IoC和DI)
			
Spring MVC是Spring框架中用于Web应用开发的一个模块.Spring MVC的MVC是Model-View-Controller的缩写.它是一个广泛应用于图像化用户交互开发中的设计模式, ...
 - windows linux 文件编码转换
			
查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vi ...
 - Mybatis-generator自动生成器
			
目录 前言牢骚 Mybatis-generator是什么? Mybatis-generator怎么使用? 第一步,Maven文件引用 第二步,数据库建立 第三步,写mybatis-generator. ...
 - Mysql SQL注入漏洞
			
学习网址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html https://www.cnblogs.com/sdya/p/4568 ...