我正在尝试输出一个像这样的三角形:
19283765
2837465
37465
465
5
但是,我的实际输出却是这样的:
98765
8765
765
65
5
public class JavaNumber2 {
public static void main(String[] args) {
int r = 9;
for (int g = 9; g <= r; g--) {
for (int j = g; j >= 5; j--) {
System.out.print(j);
}
System.out.println();
}
}
}
我该如何修改它以便获得第一个输出?
答案 0 :(得分:0)
第一个for循环中的条件错误g<=r
应该为g>=0
,并且一个if
条件要以相反的顺序打印。
public static void main(String[] args) {
int r = 9;
for (int g = 9; g >=0; g--) {
for (int j = g; j >= 5; j--) {
if(g==9) {
if(j>6) {
System.out.print(r+1-j);
}
}else {
if(j>5) {
System.out.print(r+1-j);
}
}
System.out.print(j);
}
System.out.println();
}
}
答案 1 :(得分:0)
我有这个答案:
public class T2Tree {
public static void main(String[] args) {
for (int i = 5; i >0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(j+1+5-i);
if (j<i-1) {
System.out.print(9-j+i-5);
}
}
System.out.println();
}
}
}
答案 2 :(得分:0)
或者您可以使用递归(也可以使用任何起点和终点):
class Ideone
{
public static void main (String[] args)
{
int left = 1;
int right = 9;
while(right >= left){
r(left, right);
System.out.println();
left++;
right--;
}
}
private static void r(int left, int right){
System.out.print(left);
if(left != right){
System.out.print(right);
}
if(right > left){
r(left + 1, right - 1);
}
}
}