L1-002. 打印沙漏

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

  1. *****
  2. ***
  3. *
  4. ***
  5. *****

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

  1. 19 *

输出样例:

  1. *****
  2. ***
  3. *
  4. ***
  5. *****
  6. 2

【代码】:

  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define _for(i,a,b) for(int i=(a); i<(b); i++)
  5. #define rep(i,a,b) for(int i=(a); i<=(b); i++)
  6. const int N = ;
  7.  
  8. int main()
  9. {
  10. int n, t;
  11. char c;
  12. cin >> n >> c;
  13. int tmp,cnt=;
  14. int sum=;
  15. int i;
  16. for(i=; sum<=n; i+=){
  17. sum += i*;
  18. cnt++;
  19. if(sum>n){
  20. cnt--;
  21. sum -= i*;
  22. break;
  23. }
  24. }
  25.  
  26. //printf("sum=%d cnt=%d i=%d\n",sum,cnt,i); 17 2 7 //5 3
  27. //程序中需要控制好总行数和每一行的字符
  28. //输出格式 = 空格 + 字符 (后面的空格不要输出了直接换行)
  29.  
  30. for(int i=; i<=cnt; i++){ //行数自然递增
  31. for(int j=; j<=i-; j++){ //空格随行数增多
  32. cout << " ";
  33. }
  34. for(int k=; k<=*((cnt+) - i)+; k++){ //控制字符个数 注意与行数和cnt的关系
  35. cout << c;
  36. }
  37. printf("\n");
  38. }
  39.  
  40. for(int i=; i<=cnt; i++){
  41. printf(" ");
  42. }
  43. printf("%c\n",c);
  44.  
  45. for(int i=; i<=cnt; i++){ //控制行数增大
  46. for(int j=; j<=cnt-i; j++){ //空格减少
  47. cout << " ";
  48. }
  49. for(int k=; k<=*i+; k++){
  50. cout << c;
  51. }
  52. printf("\n");
  53. }
  54.  
  55. printf("%d\n",n-sum);
  56. }

注释

CCCC L1-002. 打印沙漏【图形打印】的更多相关文章

  1. Java中使用二重循环打印沙漏图形

    1.首先判断外层,A .B.C.D都符合条件 2.那么再看内层 A :int i=0;i<5;i++ 当i=1时;带入到第二个内层循环中 int j=0;j<Math.abs(i)*2+1 ...

  2. pat 打印沙漏

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

  3. PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌

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

  4. PAT乙级 1027. 打印沙漏(20)

    1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...

  5. PAT (Basic Level) Practise (中文)1027. 打印沙漏(20)

    1027. 打印沙漏(20) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...

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

    1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...

  7. 团体程序设计天梯赛-练习集L1-002. 打印沙漏

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

  8. Java打印常见图形

    package org.other; import java.util.Scanner; /* * 题目:打印常用图形逻辑 */ public class Ninthninth { public st ...

  9. Python For嵌套循环 图形打印X型 nested loop -练习题

    For嵌套循环图形打印作业很多是C++语言做的,我觉得Python应该也能做,就来试一试. 原网址C++练习题:http://www.imooc.com/qadetail/216848?t=33880 ...

随机推荐

  1. C#入门篇-4:使用运算符

    using System; using System.Text; using System.Collections; using System.Collections.Generic; using S ...

  2. IOS开发学习笔记028-UITableView单组数据显示代码优化

    1.如果表格中又几百条数据的话,系统会自动加载显示在界面上得数据,逐一加载 添加100个数据到UITableView中 ; i < ; i ++) { NSString *icon = [NSS ...

  3. centOS如何设置时间同步

     1.进入系统-管理-时间和日期  2.这个需要root权限才能进行设置,在弹出框中填入root密码  3.设置时间和日期-勾选同步,并且选择NTP时间服务器,点击确定 4.选择时区为亚洲上海点击保存 ...

  4. 前端应该掌握的CSS实现多列等高布局

    1.引言 我们在写页面的时候,有的时候会遇到多栏布局,每个栏目里面的内容有的时候可能不一样,这样就会导致每个栏目实际的高度也是不一样的,如果每个栏目有背景颜色的,就会导致每个栏目的底部是对不齐的,用户 ...

  5. java作业8

    interface Pet{ public String getName(); public String getColor(); public int getAge(); } class Cat i ...

  6. $.ajax相关用法

      ? $.ajax({             type: "GET",             url: "Services/EFService.svc/Member ...

  7. ssh-add Could not open a connection to your authentication agent.

    ssh-add 报错Could not open a connection to your authentication agent. 需要执行以下代码 eval `ssh-agent -s` ssh ...

  8. OOP & DOM

    OOP & DOM let Dom = Dom || {}; Dom = { checkValType(val) { let typeString = Object.prototype.toS ...

  9. 第一个Maven案例Hello Maven

    Maven目录结构          src:程序源代码         -main             -java:java代码                 -package:自定义的包   ...

  10. [tsinsen_A1278]串珠子

    [tsinsen_A1278]串珠子 试题描述 铭铭有 \(n\) 个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数 \(1\) ...