zoukankan      html  css  js  c++  java
  • 1027 打印沙漏

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

    *****
     ***
      *
     ***
    *****
    

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    19 *
    

    输出样例:

    *****
     ***
      *
     ***
    *****
    2
    
     
    思路:这个写不出可以先尝试去写打印正三角和倒三角的代码,再来写这个就会好很多,主要考察格式控制,注意行末不能多空格......
     
     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5   int n,sum,i,j;
     6   char e='*';
     7   scanf("%d %c",&sum,&e);
     8   n=sqrt((sum+1)/2);
     9   for(i=0;i<n;i++)
    10   {
    11     for(j=0;j<i;j++)
    12         printf(" ");
    13     for(j=0;j<2*(n-i)-1;j++)
    14         printf("%c",e);
    15     printf("
    ");
    16   }
    17   for(i=1;i<n;i++)
    18   {
    19     for(j=0;j<n-i-1;j++)
    20         printf(" ");
    21     for(j=0;j<2*i+1;j++)
    22         printf("%c",e);
    23     printf("
    ");
    24   }
    25   printf("%d",sum-(2*n*n-1));
    26   return 0;
    27 }
    大佬见笑,,
  • 相关阅读:
    初见线段树
    用typedef声明类型
    BZOJ 3240([Noi2013]矩阵游戏-费马小定理【矩阵推论】-%*s-快速读入)
    linux命令--sysctl
    信号量学习 & 共享内存同步
    原子操作
    共享内存学习
    HOST绑定和VIP映射
    【转载】《Unix网络编程》思维导图
    外排序 & 败者树 & 多路归并-学习
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10473084.html
Copyright © 2011-2022 走看看