[英]Printing a triangle of asterisks using for loops in java
在python中,要打印
******
*****
****
***
**
*
*
**
***
****
*****
******
我们将编写以下代码:
for e in range (11,0,-1):
print((11-e) * ' ' + e * '*')
print ('')
for g in range (11,0,-1):
print(g * ' ' + (11-g) * '*')
我的问题是,这可以用Java完成吗? Java不允许你乘以字符串(int)次数,例如4 * " "
,那么我们如何在java中实现它呢?
巨大的重要编辑:伙计们抱歉我搞砸了那里的示例输出。 即我画了星号三角形错了。 我重复了星号图。 但是我要关闭这个问题并重新发布,因为这个问题没有得到太多活动。
我有一段时间没用过Java,所以如果这段代码生锈了,我很抱歉
但你做不到这样的事情:
public int printAsterisks(int numOfAsterisks){
if(numOfAsteriks == 0)
return 0;
for(int i = numOfAsteriks;i > 0 ; i--){
System.out.print("*");
}
System.out.println("")//Without this all asteriks would be printed on one line
return printAsteriks(--numOfAsterisks); //Recursively finish printing the asteriks
}
我个人更喜欢递归,但有很多不同的正确答案。 如果它不起作用,我会在这里
String str = "******";
for (int i = 5; i >= 0; i--) {
System.out.println(str=str.substring(0, i));
}
for (int i = 0; i <= 5; i++) {
System.out.println(str+= "*");
}
您可以在python中使用一个循环编写它,因为该模式的公式是y = abs(x - 5)
其中y是星号,x是循环中的迭代次数(从零开始)。 所以继续Java:
class Demo {
public static void main(String[] args) {
for(int i=0; i<13; i++) {
int repeats = Math.abs(i - 5); // formula: y = abs(x - 5)
while (repeats-- > 0)
System.out.print("*");
System.out.println("");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.