为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用循环减少每行中打印的(相同)字符的数量?

如何使用循环减少每行中打印的(相同)字符的数量?

一只甜甜圈 2022-07-06 10:05:24
基本上,我正在尝试打印字符行,特别是星号。随后的每一行都应该比前一行少一个星号。此外,它们都应该向右对齐。我对Java的了解不是太强,所以请多多包涵。这是输出和说明的图像:
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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


***

 **

  *

你看到什么模式?模式是在每一行上,星号数量和空格数量之和是恒定的。我现在将这个常量L称为line length。

由此,我们可以推断amountOfSpaces是L - amountOfAsterisks,反之亦然(因为代数的魔法定律也适用于此)。


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


剩下的由你决定


查看完整回答
反对 回复 2022-07-06
?
慕娘9325324

TA贡献1783条经验 获得超5个赞

可以根据需要修改变量。关键是使用一堆 for 循环并跟踪所有变量。


for (int i = 0; i < 8; i++) { //line number your on

    for(int k = 0; k<i;k++)//keeps track of number of spaces to use, line number minus 1 spaces printed

    {

    System.out.print(" ");

    }

for (int j = 8; j >i; j--) {//prints out 8 * and reduced by 1*line number

System.out.print("*"); 

}

System.out.println();//prints new line and initiates new line by i++

}


查看完整回答
反对 回复 2022-07-06
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号