• 输出简单图形(StringBuilder代替双重循环)


    在有些题目中打印简单图形必须使用StringBuilder或者StringBuffer,否则会运行超时(用String都会超时)。

    因为在题目的要求中说到输入的n是小于1000的,用双重循环就会超时,用单层循环的String也会超时,因为+=的次数有点多了。

    传说中的简单图形:

    Java代码如下:

    主要用了substring方法和append

    import java.util.Scanner;
    
    public class Main{
    
    public static void main(String []args){
    
        Scanner sc = new Scanner(System.in);
      StringBuilder s = new StringBuilder("");
    //   long start = System.currentTimeMillis();
      int n =sc.nextInt();
      for(int i=0;i<1002;i++){
          s.append(" ");
      } StringBuilder a = new StringBuilder("");
      for(int i=0;i<1002;i++){
          a.append("*");
      }
      StringBuilder ans = new StringBuilder("");
      for(int i=1;i<=n/2;i++){
          ans.append(s.substring(1001-n/2-1+i,1001));
          ans.append(a.substring(1001-2*i+1,1001));
          ans.append("
    ");
      }ans.append(a.substring(1001-n,1001));ans.append("
    ");
      
      
      for(int i=n/2;i>=1;i--){
          ans.append(s.substring(1001-n/2-1+i,1001));
          ans.append(a.substring(1001-2*i+1,1001));
          ans.append("
    ");
      }System.out.println(ans.toString());
          
    //  long end = System.currentTimeMillis();
    //  System.out.println((end-start)*1.0000/1000+"s");
      sc.close();
    }
    
    
    
    }

      

    不一样的烟火
  • 相关阅读:
    Java接口总结
    java面向对象特点总结
    二分查找的两种实现方法
    关于Java的对象equals方法
    java加密枝术是怎样的?
    Java中子类和父类间的调用关系
    Java中字符串的完美度
    Java源代码不编译到字节码文件
    java生成6位随机数
    Struts2中ModelDriven的使用
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11638195.html
Copyright © 2020-2023  润新知