首页 > 解决方案 > 如何使用循环减少每行中打印的(相同)字符的数量?

问题描述

基本上,我正在尝试打印字符行,特别是星号。随后的每一行都应该比前一行少一个星号。此外,它们都应该向右对齐。我对Java的了解不是太强,所以请多多包涵。

这是输出和说明的图像:

在此处输入图像描述

标签: javastringloops

解决方案


让我们从一个更简单的例子开始:

***
 **
  *

你看到什么模式?模式是在每一行上,星号数量和空格数量之和是恒定的。我现在将这个常量L称为line length
由此,我们可以推断amountOfSpacesL - amountOfAsterisks,反之亦然(因为代数的魔法定律也适用于此)。

因此,由此我们可以推断出,在每一行上,我们需要先打印L - amountOfAsterisks空格,然后再打印amountOfAsterisks. 对于这样的情况,for循环是一种救命稻草(在更专业的代码中(就像你可以使用花哨的终端图形获得的专业一样),这会有所不同,因为实际上使用for-loops 来实现这样的功能O(N)) .

剩下的由你决定


推荐阅读