如何在java中生成递归形状
我怎样才能做出这样的递归形状? 这是用户输入m=3,n=5的示例 输出结果如下所示:如何在java中生成递归形状,java,recursion,Java,Recursion,我怎样才能做出这样的递归形状? 这是用户输入m=3,n=5的示例 输出结果如下所示: *** **** ***** ***** **** *** 我得到的提示是: 可以使用for循环绘制一行形状。但是您需要递归来调用问题的“较小”版本的方法 这是我的代码,完全错了:| public static void main(String[] args) { Scanner s = new Scanner(System.in); int m = s.nextInt();
***
****
*****
*****
****
***
我得到的提示是:
可以使用for循环绘制一行形状。但是您需要递归来调用问题的“较小”版本的方法
这是我的代码,完全错了:|
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int m = s.nextInt();
int n = s.nextInt();
question1(m,n);
}
public static void question1(int m, int n){
int counter = m;
if(m < n){
System.out.print("*");
m = m + 1;
question1(m,n);
}
else if(m == n){
System.out.print("*");
}
}
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
int m=s.nextInt();
int n=s.nextInt();
问题1(m,n);
}
公共静态无效问题1(整数m,整数n){
int计数器=m;
if(m
您应该阅读有关递归的内容,并尝试做一些事情。这本网站/书有很好的解释
您需要在问题1(int m,int n)中使用return语句,并且需要调用该函数。这是递归的一个例子
public static long factorial(int n) {
if (n == 1) return 1;
return n * factorial(n-1);
}
这里是一个实现。我知道递归一开始很难理解:
public static void main(String... args) {
printShape(3, 1);
}
// @param numStars The number of stars to print in a row
// @param inc +1 or -1, representing increasing or decreasing amount of stars
private static void printShape(final int numStars, final int inc) {
if (numStars < 3)
return;
else if (numStars > 5)
printShape(numStars - 1, -1); // Reverse directions
else {
for (int i = 0; i < numStars; i++)
System.out.print("*");
System.out.println();
printShape(numStars + inc, inc);
}
}
publicstaticvoidmain(字符串…参数){
打印形状(3,1);
}
//@param numStars一行中要打印的星星数
//@param inc+1或-1,表示恒星数量的增加或减少
专用静态void打印形状(最终int numStars,最终int inc){
如果(numStars<3)
返回;
否则如果(numStars>5)
printShape(numStars-1,-1);//反向
否则{
for(int i=0;i
您试过什么吗?问题是什么?你应该从做一些计划开始,然后继续尝试编写实现你想法的代码。@ElliottFrisch这是我的代码。。