Advertisement
martyz

Diamond - softuni

Aug 28th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4.  
  5. /**
  6.  * Created by Losh17 on 28.8.2017 г..
  7.  */
  8. public class DiamondStringReverseOprimize {
  9.     public static void main(String[] args) {
  10.         Scanner console = new Scanner(System.in);
  11.         int n = Integer.parseInt(console.nextLine());
  12.         int oddEven = 0;
  13.         List<String> arr = new ArrayList<>();
  14.         String temp = "";
  15.        
  16.         //if even loops -1
  17.         if (n % 2 == 0){ oddEven = 1;}
  18.  
  19.  
  20.         //fits part diamond
  21.         for (int  i = 0; i < n / 2 - oddEven + 1; i++) {
  22.             //left side dashes
  23.             temp = repeatStr("-", (n - 1) / 2 - i);
  24.  
  25.             //if odd or even first line stars
  26.             if (n % 2 != 0 && i == 0) {
  27.                 temp += "";
  28.             } else {
  29.                 temp += "*";
  30.             }
  31.  
  32.             //if od or even mid dashes
  33.             if (n % 2 == 0) {
  34.                 temp +=repeatStr("-", i * 2); //mid even
  35.             } else {
  36.                 temp += repeatStr("-", i * 2 - 1); //mid odd
  37.             }
  38.  
  39.             //right side
  40.             temp += "*";
  41.             temp +=repeatStr("-", (n - 1) / 2 - i);
  42.  
  43.             arr.add(temp);
  44.         }
  45.         //print first part
  46.         for (int i = 0; i < arr.size(); i++) {
  47.             System.out.println(arr.get(i));
  48.         }
  49.         //print firs part as second  in reverse way
  50.         for (int j = arr.size() - 2; j >= 0; j--) {
  51.             System.out.println(arr.get(j));
  52.         }
  53.  
  54.  
  55.  
  56.     }
  57.     private static String repeatStr(String s, int count) {
  58.         StringBuilder sb = new StringBuilder();
  59.         for (int j = 0; j < count; j++) {
  60.             sb.append(s);
  61.         }
  62.         //sb.append("*");
  63.         return sb.toString();
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement