三角递归Java
在命令行上取两个数字m和n,并写出一个三角形星号图案三角递归Java,java,recursion,geometry,Java,Recursion,Geometry,在命令行上取两个数字m和n,并写出一个三角形星号图案 public class Triangle { public static void main(String[] args) { int a=0; int b=0; if(args.length!=0){ a=Integer.parseInt(args[0]); b=Integer.parseInt(args[1]); } printFirstHalf(a,b);
public class Triangle {
public static void main(String[] args) {
int a=0;
int b=0;
if(args.length!=0){
a=Integer.parseInt(args[0]);
b=Integer.parseInt(args[1]);
}
printFirstHalf(a,b);
printSecondHalf(a,b);
}
public static void printFirstHalf(int m, int n){
if(m==0){
return;
}
//recursive step
for(int i=m; i<=n; i++){
System.out.print("*");
}
System.out.println();
printFirstHalf(m-1,n);
}
public static void printSecondHalf(int m, int n){
if(m==0){
return;
}
printSecondHalf(m-1,n);
//recursive step
for(int i=m; i<=n; i++){
System.out.print("*");
}
System.out.println();
}
}
现在它打印出:
*****
******
*******
*******
******
*****
我知道我很接近,但由于某种原因,我被卡住了 考虑一下:
public static void printFirstHalf(int m, int n){
if(m>n){
return;
}
// print asterix
for(int i=1; i<=m; i++){
System.out.print("*");
}
System.out.println();
// recurse
printFirstHalf(m+1,n);
}
publicstaticvoidprintfirsthalf(int m,int n){
如果(m>n){
返回;
}
//打印星体
对于(int i=1;i您的前半部分可能是这样的(增量逻辑>:
public static void printFirstHalf(int m, int n){
if(m>n){
return;
}
//recursive step
for(int i=1; i<=m; i++){
System.out.print("*");
}
System.out.println();
printFirstHalf(m+1,n);
}
publicstaticvoidprintfirsthalf(int m,int n){
如果(m>n){
返回;
}
//递归步骤
对于(int i=1;我认为是时候调试这个问题了。这就是调试器的作用。请提供一些关于您试图做什么来解决这个问题的详细信息,然后根据您的尝试缩小您的问题范围。因为这个问题对SO来说太广泛了,您将无法得到有用的答案。您是否尝试使用调试器查看程序运行时,变量会发生什么变化?
public static void printFirstHalf(int m, int n){
if(m>n){
return;
}
//recursive step
for(int i=1; i<=m; i++){
System.out.print("*");
}
System.out.println();
printFirstHalf(m+1,n);
}