Advertisement
borkins

05. Hourglass

Apr 19th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.19 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Hourglass
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         Scanner console = new Scanner(System.in);
  8.         StringBuilder sb = new StringBuilder(".");
  9.        
  10.         int n = Integer.parseInt(console.nextLine());
  11.         int size = 2 * n + 1;
  12.        
  13.         String bottom = new String(new char[size]).replace("\0", "*");
  14.         String sand = " ";
  15.        
  16.         System.out.println(bottom);
  17.        
  18.         for (int row = 0; row < size / 2; row++)
  19.         {
  20.             System.out.print(sb + "*");
  21.             printStr(sand, size - sb.length() - row - 3);
  22.             System.out.println((row < size / 2 - 1) ? "*" + sb : sb);
  23.             sb.append(".");
  24.             sand = "@";
  25.         }
  26.        
  27.         for (int row = 0; row < size / 2 - 1; row++)
  28.         {
  29.             printStr(".", size / 2 - row - 1);
  30.             System.out.print("*");
  31.            
  32.             if (row < size / 2 - 2)
  33.             {
  34.                 printStr(" ", row);
  35.                 printStr("@", 1);
  36.                 printStr(" ", row);
  37.             }
  38.             else {
  39.                 printStr("@", size - 4);
  40.             }
  41.            
  42.             System.out.print("*");
  43.             printStr(".", size / 2 - row - 1);
  44.             System.out.println();
  45.         }
  46.         System.out.println(bottom);
  47.     }
  48.    
  49.     public static void printStr(String str, int count)
  50.     {
  51.         for (int i = 0; i < count; i++)
  52.         {
  53.             System.out.print(str);
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement