zoukankan      html  css  js  c++  java
  • 00-自测1. 打印沙漏(20)

    源网址

    http://www.patest.cn/contests/mooc-ds2015spring/00-%E8%87%AA%E6%B5%8B1


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

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

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

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

    输入格式:

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

    输出格式:

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

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

     1 import java.io.BufferedReader;
     2 import java.io.IOException;
     3 import java.io.InputStreamReader;
     4 
     5 public class Main
     6 {
     7     static int n0;//原始个数
     8     static int n1;//剩余个数
     9     static int cout;//行数
    10     static String ch;//打印的符号
    11     public static void cout()
    12     {
    13         int i=2;
    14         int sum=1;
    15         for(;sum<=n0;i++)
    16         {
    17             sum+=2*(2*i-1);
    18         }
    19         i--;
    20         sum=sum-2*(2*i-1);
    21         n1=n0-sum;
    22         i--;
    23         i=2*i-1;
    24         cout=i;
    25     }
    26     
    27     public static void print()
    28     {
    29         int cout1=cout/2;//中心位置
    30         for(int i=0;i<cout;i++)
    31         {
    32             if(i<cout1)
    33             {
    34                 for(int j=0;j<i;j++)
    35                     System.out.print(" ");
    36                 for(int j=i;j<2*(cout-i-1-cout/2)+1+i;j++)
    37                     System.out.print(ch);
    38                 System.out.println();
    39             }
    40             if(i==cout1)
    41             {
    42                 for(int j=0;j<i;j++)
    43                     System.out.print(" ");
    44                 System.out.print(ch);
    45                 System.out.println();
    46             }
    47             if(i>cout1)
    48             {
    49                 for(int j=0;j<cout-i-1;j++)
    50                     System.out.print(" ");
    51                 for(int j=i;j<2*(i-cout/2)+1+i;j++)
    52                     System.out.print(ch);
    53                 System.out.println();
    54             }
    55         }
    56         System.out.println(n1);
    57     }
    58     
    59     public static void main(String[] args) throws IOException
    60     {
    61         BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
    62         String temp;
    63         temp=buf.readLine();
    64         String[] temp1=temp.split(" ");
    65         n0=Integer.parseInt(temp1[0]);
    66         if(n0<1)
    67             return;
    68         ch=temp1[1];
    69         cout();
    70         print();
    71 
    72     }
    73 }
  • 相关阅读:
    IIS配置跨域请求
    ABP框架页面权限验证
    WPF-DataGrid增删改查不绑定数据源
    WPF-DataGrid增删改查绑定数据源
    .NET开发框架集合(长期更新)
    C# Webbrowser 常用方法及多线程调用
    Devexpress-GridLookUpEdit
    Devexpress提示框的使用
    Asp.Net MVC中Action跳转小结
    ASP.NET MVC备忘
  • 原文地址:https://www.cnblogs.com/qq1029579233/p/4397246.html
Copyright © 2011-2022 走看看