作业1

使用循环打印基础图形

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
let number = 5;
number = window.prompt("请输入生成的行数")

// 生成n个空格
function generateSpaces(n) {
let spaces = "";
for (let i = 0; i < n; i++) {
spaces += " ";
}
return spaces;
}

// 生成n个星号
function generateStars(n) {
let stars = "";
for (let i = 0; i < n; i++) {
stars += "* ";
}
return stars;
}

// 打印等腰三角形
function printTriangle(rows) {
let triangle = "";

for (let i = 1; i <= rows; i++) {
let spaces = generateSpaces(rows - i);
let stars = generateStars(i);
triangle += spaces + stars + "\n";
}
document.write("<pre>" + triangle + "</pre>");
}

// 打印平行四边形
function printParallelogram(rows) {
let parallelogram = "";
for (let i = 1; i <= rows; i++) {
let spaces = generateSpaces(rows - i);
let stars = generateStars(rows);
parallelogram += spaces + stars + "\n";
}
document.write("<pre>" + parallelogram + "</pre>");
}

// 打印菱形
function printDiamond(rows) {
let midRow = Math.floor(rows / 2);
let diamond = "";
// 打印上半部分
for (let i = 0; i < midRow; i++) {
let spaces = generateSpaces(2 * midRow - 2 * i);
let stars = generateStars(i * 2 + 1);
diamond += spaces + stars + "\n";
}
// 打印中间行
if(rows%2 === 0){
rows++;
}
diamond += generateStars(rows) + "\n";

// 打印下半部分
for (let i = midRow - 1; i >= 0; i--) {
let spaces = generateSpaces(2 * midRow - 2 * i);
let stars = generateStars(i * 2 + 1);
diamond += spaces + stars + "\n";
}
document.write("<pre>" + diamond + "</pre>");
}

// 调用打印函数
printTriangle(number);
printParallelogram(number);
printDiamond(number);