题目来源:蓝桥杯2018初赛 C++ C组H题

题目描述
本题目要求你在控制台输出一个由数字组成的等腰三角形。
具体的步骤是:

  1. 先用1,2,3,…的自然数拼一个足够长的串
  2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。
    比如,当三角形高度是8时:

输入格式
输入存在多组数据,对于每组数据:
输入一行包含一个正整数n(3<n<300),表示三角形的高度

输出格式
对于每组测试数据输出用数字填充的等腰三角形。
为了便于测评,我们要求空格一律用"."代替。

输入样例
5
10
输出样例

....1
...2.1
..3...2
.4.....1
567891011
.........1
........2.2
.......3...2
......4.....2
.....5.......1
....6.........2
...7...........0
..8.............2
.9...............9
1011121314151617181

问题分析
这个题是打印图形问题,关键在于n与各种数量的数学关系。找到公式关系尤为重要。
需要多少数字?
第1行1个数字,第2行到第n-1行每行需要2个数字,第n行需要2n-1个数字。合计需要1+2(n-2)+2n-1=4n-4个数字。
第1行内容:n-1".“(点);1;换行('\n)。
第2行至第n-1行内容:若干个”.“(点);一个数字;若干个”."(点);一个数字;换行。
第n行内容:2n-1个数字。

AC的C++语言程序如下:

/* LQ0122 等腰三角形 */#include <iostream>
#include <algorithm>
#include <cstdio>using namespace std;string t;void init()
{for (int i = 1; i <= 500; i++) {string s;int n = i;while (n)s += (char)('0' + n % 10), n /= 10;reverse(s.begin(), s.end());t += s;}
}int main()
{init();int n;while (cin >> n) {// 第1行至第n-1行for (int i = 1; i < n; i++) {for (int j = 1; j <= n - i; j++)putchar('.');putchar(t[i - 1]);if (i != 1) {for (int j = 1; j < (i - 1) * 2; j++)putchar('.');putchar(t[4 * n - 4 + 1 - i]);}putchar('\n');}// 第n行for (int i = 0; i < 2 * n - 1; i++)putchar(t[n - 1 + i]);putchar('\n');}return 0;
}

LQ0122 等腰三角形【打印图形】相关推荐

  1. JSK-347 打印图形【打印图案】

    打印图形 仔细看图形的格式,打印出以下图形. 比如例子中每一行 * 号的个数分别是 1,3,5,7. 输入格式 输入一个数字. 输出格式 输出其所对应到三角形. 样例输入 4 样例输出 ******* ...

  2. 使用嵌套循环打印图形

    循环嵌套 循环里面可以嵌套循环,今天我们就用双层for循环打印图形和做出杨辉三角.打印图形时,把图形看做行,列.外层循环来控制行,内层控制列.如果是有星星还有空格的类型.模板就是 外层 for(int ...

  3. 循环结构(打印图形专项练习)

    提示:初学者在学习编程时最大的坏习惯就是不用草稿纸,眼高手低,拿到题目还没有想好算法就动手写程序,走一步看一步,这样写出的程序往往会存在各种各样的问题,最终浪费大量的时间去进行调试,学习到后期当问题较 ...

  4. 打印图形(循环嵌套专项练习)

    本文的设计意图:<打印图形>专项练习的编写是为了帮助学生进一步理解掌握循环嵌套的设计编写,重点是学会分析循环变量之间的关系 提示:初学者在学习编程时最大的坏习惯就是不用草稿纸,眼高手低,拿 ...

  5. C++扬帆远航——3(打印图形)

    /** Copyright (c) 2016,烟台大学计算机与控制工程学院* All rights reserved.* 文件名:tuxing.cpp* 作者:常轩* 完成日期:2016年3月15日* ...

  6. 2018年第九届省赛C/C++A组第5题——打印图形

    标题:打印图形 如下的程序会在控制台绘制分形图(就是整体与局部自相似的图形). 当n=1,2,3的时候,输出如下: 请仔细分析程序,并填写划线部分缺少的代码. #include <stdio.h ...

  7. 使用字符在终端打印图形汉字

    使用字符在终端打印图形汉字 主要使用HKZ16点阵字库来实现.顾名思义,HKZ16点阵字库就是把一个汉字拆成16*16的字符点来显示,在点阵字库中每个汉字占32个字节,256位,当这一位为1时表示需要 ...

  8. C语言打印图形小妙招

    在c语言中我们常用使用空格和*来打印各种各样图形,像爱心 还有飞机 那么像这种打印图形一般有两种方法,一种是直接打印法, 另一种是函数打印法 直接打印法顾名思义就是使用printf函数直接打印图形,例 ...

  9. 利用for循环打印图形

    利用for循环打印图形 利用for循环打印图形时,我们需要记住外层循环列,内层循环行,然后们需要做的不外乎是找到它们循环的规律罢了. 打印矩形图形 打印: ***** ***** ***** **** ...

最新文章

  1. MVC、JSP实现mysql的增删改查功能的封装和简陋的界面交互
  2. Excel 单元格不能设置超链接
  3. 475. Heaters
  4. Linux防火墙设置-DNS服务器篇
  5. php中退出怎么写,php中退出登录怎么写
  6. poj3669 Meteor Shower(预处理+bfs)
  7. 深度学习pytorch--softmax回归(一)
  8. php fpm core,在php-fpm下,服务器间歇出现core dump 追踪到php代码是include一个php文件...
  9. Journey Of Code组组员贡献率
  10. 解决docker pull 速度过慢问题 - 使用阿里云加速器
  11. java安装包_java JDK安装包的获取与安装
  12. [读书] 《未来世界的幸存者》关于熵减的心得
  13. 【Unity实战100例】Unity幸运大转盘之概率可控
  14. jpeg 与 png 图片格式的区别
  15. 如何将图片的背景色去掉?怎样快速去除背景色?
  16. DiabloFX展示模板 joomla多用途二手房公司企业博客商业主题
  17. UDP重传,似牛非马。。。
  18. 弘辽科技:拼多多怎么提升访客量?有哪些方法?
  19. 445端口telnet不通经验总结
  20. 干货分享 | Swift在淘系技术的演进历程

热门文章

  1. [Luogu4182][USACO18JAN]Lifeguards P[单调队列]
  2. 机器人学回炉重造(1-2):各种典型机械臂的正运动学建模(标准D-H法)
  3. domino前后端彻底分离,请使用最流行的vue、react做开发--国内首创
  4. 那么如何求出这个长轴和短轴呢?于是线性代数就来了
  5. 职场人必备的6款实用办公app,每一款都是心头爱
  6. 某易—将军令动态刨析算法(1)
  7. JavaScript 中的事件流和事件处理程序(读书笔记思维导图)
  8. R3live笔记:从代码看lio线程
  9. 【深度学习】基于MindSpore和pytorch的Softmax回归及前馈神经网络
  10. html打造动画【系列2】- 可爱的蛙蛙表情