Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我说的是打印这种图案
使用多个for循环非常容易。但是我试图使用单个for循环来实现它,但是无法做到这一点。
可能吗?
但是我真的很想知道如何在没有预定义函数的情况下使用它,例如reverse()等,这些函数本身会在其中使用循环。
只是一个简单的“ for”循环。
它会跟踪左数字并在每次添加一个新数字。
编辑:
由于StringBuilder.reverse()使用循环并且还会反转10,因此没有StringBuilder:
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我说的是打印这种图案
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
使用多个for循环非常容易。但是我试图使用单个for循环来实现它,但是无法做到这一点。
可能吗?
my code:-
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 8; ++i) {
System.out.println(sb.append(i)
+ new StringBuilder(sb).reverse().substring(1));
但是我真的很想知道如何在没有预定义函数的情况下使用它,例如reverse()等,这些函数本身会在其中使用循环。
只是一个简单的“ for”循环。
最佳答案
这是一种仅使用一个循环即可写出此模式的方法:
class RhombusNumbers{
public static void main(String[] args){
String left = "";
int max = 8;
for(int i = 1; i <= max; i++){
System.out.println(left + i + new StringBuilder(left).reverse().toString());
left+=i;
}
}
}
它会跟踪左数字并在每次添加一个新数字。
编辑:
由于StringBuilder.reverse()使用循环并且还会反转10,因此没有StringBuilder:
class RhombusNumbers{
public static void main(String[] args){
String left = "";
String right = "";
int max = 8;
for(int i = 1; i <= max; i++){
System.out.println(left + i + right);
left+=i;
right = i + right;
}
}
}