1027. 打印沙漏(20)

C++AC代码(更新于2017年4月9日)
解题思路,注意到行数与第一行和最后一行字符数都是相等的,根据等差数列找关系

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{int n,linenum=1,k,s=0;//s用于记录空格数,linenum为总计打印行数char ch;cin>>n>>ch;while((linenum+1)*(linenum+1)/2-1<=n)linenum+=2;linenum-=2;//求出行数k=linenum;while(k>=1)//打印倒三角{for(int i=0;i<s;++i)cout<<" ";for(int j=0;j<k;++j)cout<<ch;cout<<endl;k-=2;++s;//每一行打印符号数递减2,打印空格数递增1}k+=4;s-=2;while(k<=linenum)//打印正三角{for(int i=0;i<s;++i)cout<<" ";for(int j=0;j<k;++j)cout<<ch;cout<<endl;k+=2;--s;}cout<<n+1-(linenum+1)*(linenum+1)/2;//输出多余符号数return 0;
}

C代码(Pre)

#include<stdio.h>
#include<math.h>
int main(){int n,m,i,j;char ch;scanf("%d %c",&n,&ch);m=sqrt((n+1)/2);for(i=m;i>=1;i--){for(j=0;j<m-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%c",ch);printf("\n");}for(i=2;i<=m;i++){for(j=0;j<m-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%c",ch);printf("\n");}printf("%d",n-(2*m*m-1));
}

转载于:https://www.cnblogs.com/xLester/p/7570514.html

1027. 打印沙漏(20)相关推荐

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

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

  2. PTA练习题1027 打印沙漏 (20分)

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

  3. 1027 打印沙漏 (20 分)

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

  4. PTA乙级 1027 打印沙漏——20分

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

  5. 1027 打印沙漏 (20分)——27行代码AC(结构清晰)

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ********** ...

  6. PAT 乙级 1027. 打印沙漏(20) Java版

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

  7. 1027. 打印沙漏(20)-PAT乙级真题

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

  8. 1027 打印沙漏 (20分)

    本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个符号:各行符号中心对齐:相邻两行符 ...

  9. PAT (Basic Level) 1027 打印沙漏 (20 point(s))

    #include <iostream> #include <cmath> using namespace std; int main() {int n, line = 0;ch ...

最新文章

  1. ELK性能优化实战分析
  2. 24.二叉树中和为某一值的路径
  3. 利用均值漂移实现图像分割的原理和OpenCV代码
  4. firefox不激活新标签页
  5. idea创建xml文件 却没有xml模板
  6. java ee 期末考试_JAVA EE 期末试题 (1)
  7. EF 学习 实用脚本
  8. Ajax Get请求获取后台返回的数据
  9. python中import sys_python import sys出错怎么办
  10. 三羊献瑞c语言编程入门,蓝桥杯-三羊献瑞,
  11. postgresql修炼之道_PostgreSQL的TOAST技术
  12. 转债---Pregel: A System for Large-Scale Graph Processing(译)
  13. C#中释放数据库连接资源
  14. 刘敏华:2013年网络营销行业展望
  15. Python对我下手了!学会这几个知识点可以救命!
  16. 一个关于传奇3G游戏的感言
  17. 吴恩达机器学习入门(配合吴恩达机器学习视频篇)
  18. python龙格库塔_用python面向对象的方法实现欧拉算法和龙格库塔算法
  19. 云计算与大数据技术应用 第二章
  20. docker安装nagios监控

热门文章

  1. ES6公用跑马灯抽奖组件的封装及使用
  2. Linux云服务器安装node.js
  3. 洛谷P3381 【模板】最小费用最大流
  4. java url编码解码
  5. html5 canvas 版 hello world! 暨haXe简介
  6. JavaWeb三大组件之Servlet
  7. 在Eclipse中搭建Python Django
  8. x264 n-th pass编码时候Stats文件的含义
  9. 在C#调用C++的DLL简析(二)—— 生成托管dll
  10. GPL与LGPL的区别