我们对AP计算机科学的任务之一是打印ascii艺术圣诞树。我无法将不同的部分集中在彼此之上。 以下是图片应该是什么样子的一般概念: enter image description here
/* Matthew Johnson
* AP Computer Science
* Programming project 1
*/
public class ChristmasTrees
{
public static void main(String[] args)
{
printTrees(4,5);
}
// printTrees accepts parameters for number of segments (seg) and height (ht) for the tree
// the method then prints each tree according to the parameters given
public static void printTrees(int seg, int ht)
{
for(int i = 1; i <= seg; i++)
{
int topStar;
int firstStar = (i * 2 - 1);
for(int j = 1; j <= ht; j++)
{
for(int spaces = 1; spaces <= (ht - j); spaces++)
{
System.out.print(" ");
}
for(topStar = 1; topStar <= firstStar; topStar++)
{
System.out.print("*");
}
firstStar += 2;
System.out.println();
}
}
}
}
答案 0 :(得分:0)
对于每个细分,您可以根据当前使用的树的哪个部分+ (seg - i)
添加空格:
更改此行:
for(int spaces = 1; spaces <= (ht - j); spaces++)
到此:
for(int spaces = 1; spaces <= (ht - j) + (seg - i); spaces++)
这至少会沿着中心排列每个部分。
答案 1 :(得分:0)
对于空格数量,您可能需要考虑段数。
for(int spaces = 1; spaces <= (ht-j +seg - i); spaces++)