L1-002 打印沙漏

问题描述

问题分析

最关键的一点是要知道行数,有了行数就都好操作了,打印最大的沙漏其实可以简化为找到最大的行数,有了行数就是简单的打印了,将整个沙漏分成上下两个部分,上部是一个倒三角去掉最后一行的一个符号,下部分是一个三角形。

代码

#include<iostream>
using namespace std;
int print (int n,char s) {int num,sum = 1  ,m = 3;while (sum <= n) {num = sum;sum += m * 2;m += 2;};m -= 4;for(int i = 0; i < m / 2; i++) {for(int j = 0; j < i; j++) {cout << " ";}for(int j = 0; j < m-(i*2); j++) {cout << s;}cout << "\n";} for(int i = 0; i < m / 2 + 1; i++) {for(int j = m/ 2; j > i; j--) {cout << " ";}for(int j = 1; j <= i*2 + 1; j++) {cout << s;}cout << "\n";} return  n - num;
}
int main()
{int n;char s;cin >> n >> s;cout << print(n,s);
} 

代码思路

发现一个规律,从小到大的沙漏行数对应:1 3 5 7 9这样一个数列,每一个沙漏从小到大对应的符号个数:1 1+3*2 1+3*2+5*2 1+3*2+5*2+7*2 1+3*2+5*2+7*2+9*2,有了这个规律就可以判断行数了,从1开始计算符号数,行数每次假2,如果发现结果大于输入的数,那么上一次的行数就是对应最大的行数,然后根据行数打印沙漏。

L1-002 打印沙漏相关推荐

  1. 7-1 打印沙漏 (20 分)

    ** 7-1 打印沙漏 (20 分) ** 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ************ ***** 所谓&q ...

  2. (C++)1027 打印沙漏

    笔记:星号右边的空格不用打印 #include<cstdio> #include<cmath> #include<cstring> #include<algo ...

  3. PAT_B_1027 打印沙漏

    题目描述: 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印************ ***** 所谓"沙漏形状",是指 ...

  4. PTA L1_002 打印沙漏(C语言)

    PTA L1_002 打印沙漏(C语言) 用C语言打印一个沙漏 一.题目概要 二.题目分析 三.解题思路 (一).给定的字符可以打印几行 (二).剩余的字符数 (三).如何输出沙漏 四.代码一览 五. ...

  5. C语言程序练习-L1-002 打印沙漏 (20分)

    L1-002 打印沙漏 (20分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数 ...

  6. 1027. 打印沙漏(20)

    1027. 打印沙漏(20) C++AC代码(更新于2017年4月9日) 解题思路,注意到行数与第一行和最后一行字符数都是相等的,根据等差数列找关系 #include <iostream> ...

  7. CCCC L1-002. 打印沙漏【图形打印】

    L1-002. 打印沙漏 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给 ...

  8. C++学习之路 | PTA乙级—— 1027 打印沙漏 (20 分)(精简)

    1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个 ...

  9. c++string转char数组_C++ 算法题解:打印沙漏、素数对猜想、数组元素循环右移问题...

    作者:鲸90830  链接:https://www.cnblogs.com/whale90830/p/10688802.html DS_起步自测 中国大学MOOC_陈越.何钦铭_数据结构_起步能力自测 ...

  10. 7-138 打印沙漏 (20 分)

    7-138 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ************ ***** 所谓" ...

最新文章

  1. 目前python主要应用领域零售_python3读取HDA零售企业数据(一)
  2. char str[]与char *str的区别
  3. FreeCAD v0.19源码编译与VS2017+Qt5环境搭建
  4. Safari支不支持HTML5录音? 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API。...
  5. 美团深度学习系统的工程实践
  6. kobject_create_and_add解析
  7. 【C语言】创建一个函数,判断某一正整数是否为素数,并调用这个函数找出1000以内所有素数...
  8. jde多目标_《和平精英》PEL职业联赛S3赛季:DKG战队获第四周周冠军,JDE“逆风翻盘”...
  9. vant ui 官方文档_转载:微信小程序UI组件库合集
  10. 软件架构风格-调用/返回风格
  11. 估计的商是什么意思_商_商是什么意思_商字怎么读_商的含义_商字组词-新东方在线字典...
  12. php doc生成pdf文件怎么打开乱码,phpexcel 导出pdf文件乱码,该如何解决
  13. 声学模型训练-嵌入式训练
  14. 现在的男生为什么不主动追求女生了
  15. xpdl关于join和split的定义的翻译。(转)
  16. 【数据异常校验】拉依达准则( PauTa Criterion 或 3σ准则) 处理异常数据
  17. HTMLa标签常用的四种链接
  18. 计算机应用有作业吗,计算机应用基础_作业1
  19. 10亿数据中取最大的100个数据
  20. 《高级数据库系统》学习笔记

热门文章

  1. 图片阴影效果怎么设置html,css如何给图片加阴影?
  2. 精确保留格式:将 PDF 转换为 Word 文档的技巧
  3. javaweb发送邮箱验证
  4. C#语言中TransactionScope类的使用
  5. 超越自身定位玩跨界:移动App如何求生?
  6. Invalidate(TRUE)与Invalidate(FALSE)区别
  7. 嵌入式软件工程师介绍
  8. 第1章 HTML5基础 课后作业
  9. 超可爱萝莉双胞胎跳舞
  10. 互联网科普知识【野狗】