zoukankan      html  css  js  c++  java
  • 团体程序设计天梯赛-练习集L1-002. 打印沙漏

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

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

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

    输入格式:

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

    输出格式:

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

    输入样例:
    19 *
    输出样例:
    *****
     ***
      *
     ***
    *****
    2

    #include <iostream>
    using namespace std;
    int main()
    {
        int n,i=1,j,d,max,sum=1;
        char a;
        cin>>n>>a;
        while(1){
            i+=2;
            if(sum+i*2>n){
                max=i-2;
                d=n-sum;
                break;
            }
            sum+=i*2;
        }
        for(i=max;i>=1;i-=2){
            for(j=0;j<max;j++){
                if(j<(max-i)/2)
                    cout<<" ";
                    else if(j>=(max+i)/2)
                        break;
                        else
                            cout<<a;
            }
            cout<<endl;
        }
        for(i=3;i<=max;i+=2)
        {
            for(j=0;j<max;j++)
            {
                if(j<(max-i)/2){
                        cout<<" ";
                }else if(j>=(max+i)/2)
                break;
                else
                    cout<<a;
            }
            cout<<endl;
        }
        cout<<d<<endl;
        
        return 0;
     }



  • 相关阅读:
    DataList分页的实现
    request
    MDX as的使用
    GridView加入checkbox
    .net读取excel
    Cousin
    silverlight柱状图 改变选项事件 和 取消选择
    关于DrillThrough
    取最大值的那天MDX
    ConnectionString has already been added(虚拟目录的web.config节点不继承上级目录)
  • 原文地址:https://www.cnblogs.com/whatiwhere/p/8597643.html
Copyright © 2011-2022 走看看