1、利用方法输出由“*”组成的沙漏和倒三角图形。谁能帮我做一下,我不胜感激。

做做这个题
2025-02-24 02:10:06
推荐回答(1个)
回答1:

代码如下,不解释。。。

public class TestXing {

static int tt = 40; // 画布总的长和宽

public static void main(String[] args) {
TestXing tp = new TestXing();
p("直角三角形");
tp.直角三角形(10);
p("等腰三角形");
tp.等腰三角形(11);
p("沙漏");
tp.沙漏(11);
}

private static void p(String s) {
System.out.println(s);
}

// 直角三角
public void 直角三角形(int 高度) {
for (int i = 1; i <= 高度; i++) {
p(sort1(i));
}
}

// 等腰三角
public void 等腰三角形(int 高度) {
for (int i = 1; i <= 高度*2; i++) {
if (i % 2 == 1)
p(sort2(i));
}
}

// 沙漏
public void 沙漏(int 半高度) {
for (int i = 半高度*2; i >= 1; i--) {
if (i % 2 == 1)
p(sort2(i));
}
this.等腰三角形(半高度);
}

private String sort1(int cu) {
String str = "";
for (int i = 0; i < tt; i++) {
str += i < cu ? "*" : " ";
}
return str;
}

private String sort2(int cu) {
String str = "";
for (int i = 1; i <= tt; i++) {
str += i >= (tt - cu) / 2 && i < (tt + cu) / 2 ? "*" : " ";
}
return str;
}