【发布时间】:2023-04-09 10:04:01
【问题描述】:
在命令行中取两个数字 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);
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();
}
}
如果发送了 3 和 7,则应该打印:
***
****
*****
******
*******
*******
******
*****
****
***
现在打印出来了:
*****
******
*******
*******
******
*****
我知道我很接近,但由于某种原因,我主要被卡住了。
【问题讨论】:
-
看来是时候调试问题了。
-
这就是调试器的用途。
-
请提供一些关于您尝试解决问题的详细信息,然后根据您的尝试缩小您的问题范围。因为这个问题对于 SO 来说太宽泛了,你不会得到有用的答案。您是否尝试过使用调试器查看程序运行时变量会发生什么变化?