java – 用“X”画一棵圣诞树
发布时间:2020-12-15 04:14:46 所属栏目:Java 来源:网络整理
导读:我正在尝试 Java中的一些在线练习.我做了很多练习,但是如果n = 4的话,我会坚持使用一个给出给定n(其中n是来自用户的输入)的练习,绘制一个如下所示的圣诞树: X X XXX X XXX XXXXX X XXX XXXXXXXXXXXX 我似乎无法绕过循环.这是我到目前为止所做的: public cl
|
我正在尝试
Java中的一些在线练习.我做了很多练习,但是如果n = 4的话,我会坚持使用一个给出给定n(其中n是来自用户的输入)的练习,绘制一个如下所示的圣诞树:
X X XXX X XXX XXXXX X XXX XXXXX XXXXXXX 我似乎无法绕过循环.这是我到目前为止所做的: public class Test {
public double org,mes;
public Test() {
}
private static void drawChristmasTree(int n) {
if (n == 1) {
System.out.println("X");
} else {
for (int p = 1; p <= n; p++) {
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < (2 * i - 1); j++) {
//System.out.println("X");
System.out.print("X");
}
System.out.println();
}
}
}
}
public static void main(String[] args) {
drawChristmasTree(4);
}
}
解决方法
编写制作三角形的方法然后在创建圣诞树时在方法中调用它是很好的:
public static void main(String[] args) {
drawChristmasTree(4);
}
private static void drawChristmasTree(int n) {
for (int i = 0; i < n; i++) {
triangle(i+1,n);
}
}
private static void triangle(int n,int max){
for (int i = 0; i < n; i++) {
for (int j = 0; j < max-i-1; j++) {
System.out.print(" ");
}
for (int j = 0; j < i*2+1; j++) {
System.out.print("X");
}
System.out.println("");
}
}
您必须考虑的唯一区别是,不寻常的是使用的空格数量.这是最大参数,因为只有通过使某些尺寸的三角形与其他三角形的空间不相符. 因此,无论您构建多大的三角形,您都必须始终考虑最大三角形(最后一个)以及您需要多少空间. 仅制作纯三角形的方法如下所示:(只有将max-i-1更改为n-i-1的区别) private static void triangle(int n){
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
System.out.print(" ");
}
for (int j = 0; j < i*2+1; j++) {
System.out.print("X");
}
System.out.println("");
}
}
树大小为10的输出: X
X
XXX
X
XXX
XXXXX
X
XXX
XXXXX
XXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
