我做了一个程序
public class StarPattern2 {
public static void main(String args[]) {
printStar("*", 1, 5);
}
public static void printStar(String s, int i, int a) {
if (a == 0)
return;
for (int j = 0; j < i; j++) {
System.out.print(s);
}
System.out.println();
a--;
i++;
printStar("*", i, a);
}
}
将图案打印为
*
**
***
****
*****
但是它正在使用一个循环,我不想使用任何循环,即仅使用递归,我想打印图案。
最佳答案
要删除递归,请将printStar替换为:
public static void printStar(String s, int i, int a)
{
for(;a>0;a--)
{
for(int j=0;j<i;j++)
{
System.out.print(s);
}
System.out.println();
i++;
}
}
对于任一递归或OR循环的更改要求:
public static void printStar(String s, int i, int a)
{
if(a == 0) return;
System.out.println(s);
printStar(s+"*", i, a-1);
}
注意,不再需要i变量。
关于java - 不使用递归仅使用一个循环就打印星形模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37565774/