HDU2091(基础题)
2016-07-12 09:07
225 查看
题目:
题意很简单,即让你输出字符打印的三角形,只是需要注意输出格式
思路:
刚开始时PE了两次,理解错了两个三角形之间输出一行空行这句话的意思,在不知道下一次输入是不是@的情况下,是不能输出一行空行的即输出一个三角形后,光标应该在下一行等待输入,只需要在输出第一个三角形时判断一下即可,之后在输出三角形时先输出一个空行
代码:
其中flag拿来判断是否为第一个三角形
D - 空心三角形 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。 Input 每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。 Output 每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。 Sample Input X 2 A 7 @ Sample Output X XXX A A A A A A A A A A A AAAAAAAAAAAAA
题意很简单,即让你输出字符打印的三角形,只是需要注意输出格式
思路:
刚开始时PE了两次,理解错了两个三角形之间输出一行空行这句话的意思,在不知道下一次输入是不是@的情况下,是不能输出一行空行的即输出一个三角形后,光标应该在下一行等待输入,只需要在输出第一个三角形时判断一下即可,之后在输出三角形时先输出一个空行
代码:
#include <iostream> using namespace std; int main() { int n, flag=0; char c; while(cin>>c&&c!='@'){ cin>>n; if(flag!=0) cout<<endl; for(int i=0; i<n-1; i++){ for(int j=n-i-2; j>=0; j--) cout<<" "; cout << c; if(i==0) cout<<endl; else{ for(int k=i*2-2; k>=0; k--) cout<<" "; cout << c << endl; } } for(int i=0; i<2*n-1; i++) cout<<c; cout<<endl; flag = 1; //cout<<"exo me"<<endl; } return 0; }
其中flag拿来判断是否为第一个三角形
相关文章推荐
- 基础的名词概念
- shell脚本生成指定字符的随机串
- 日期比较
- leetcode-35. Search Insert Position
- OC利用正则表达式获取网络资源(网络爬虫)
- 关系型数据库三范式
- java集合——Vector的用法
- 单例模式和多例模式的总结
- QML单例组件
- 滨州学院面向对象软件工程期末复习题
- learning android
- ConcurrentHashMap、Collections.synchronizedMap、Hashtable讨论(区别)-java集合框架【3】 java1.5新特性
- 如何返回上一个界面并传值给上一个界面
- 浅谈angularJS中的事件
- java集合——linklist的用法
- Oracle数据DOS命令导入导出imp/exp
- 常见进程调度算法
- iOS TableView滚动时的视觉差效果
- Google将数十亿行代码储存在单一的源码库
- linux C之access函数