/
p05Paralelepiped.java
55 lines (41 loc) · 1.79 KB
/
p05Paralelepiped.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.util.Scanner;
public class p05Paralelepiped {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int n = Integer.parseInt(console.nextLine());
int width = 3 * n + 1;
int height = 4 * n + 4;
int waveCount = n - 2;
String firstRow = "+" + buildString("~", waveCount) + "+" + buildString(".", width - waveCount - 2);
System.out.println(firstRow);
int leftDotsCount = 0;
for (int i = 0; i < 2 * n + 1; i++) {
int rightDotsCount = width - leftDotsCount - waveCount - 3;
String leftDots = buildString(".", leftDotsCount);
String waves = buildString("~", waveCount);
String rightDots = buildString(".", rightDotsCount);
String upperCycle = "|" + leftDots + "\\" + waves + "\\" + rightDots;
System.out.println(upperCycle);
leftDotsCount++;
}
leftDotsCount = 0;
for (int i = 0; i < 2 * n + 1; i++) {
int rightDotsCount = width - leftDotsCount - waveCount - 3;
String leftDots = buildString(".", leftDotsCount);
String waves = buildString("~", waveCount);
String rightDots = buildString(".", rightDotsCount);
String lowerCycle = leftDots + "\\" + rightDots + "|" + waves + "|";
System.out.println(lowerCycle);
leftDotsCount++;
}
String lastRow = buildString(".", leftDotsCount) + "+" + buildString("~", waveCount) + "+";
System.out.println(lastRow);
}
public static String buildString(String text, int repeatCount) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < repeatCount; i++) {
sb.append(text);
}
return sb.toString();
}
}