我做了一个程序
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);
}
}
将图案打印为
*
**
***
****
*****
但它使用一个循环我不想使用任何循环,即仅使用递归我想要打印模式。
答案 0 :(得分:1)
要删除递归,请将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变量不再需要。
答案 1 :(得分:0)
你可能会这样:
public class App {
public static void main(String[] args) {
App app = new App();
app.printTriangle(5);
}
public String printTriangle(int count) {
if (count <= 0) return "";
String p = printTriangle(count - 1);
p = p + "*";
System.out.println(p);
return p;
}
}
// Result
// *
// **
// ***
// ****
// *****
答案 2 :(得分:0)
如果您想通过循环执行此操作,那么这可能是您想要的:
public static void printStar(String s, int lines) {
for (int i = 0; i < lines; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(s);
}
System.out.println();
}
}
或者只有一个循环:
public static void printStar(String s, int lines) {
String out = "";
for (int i = 0; i < lines; i++) {
out += s;
System.out.println(out);
}
}