Java使用for循环打印特定模式
下面是我的代码有人能帮我吗我被困在*部分 我想要这样的输出Java使用for循环打印特定模式,java,for-loop,Java,For Loop,下面是我的代码有人能帮我吗我被困在*部分 我想要这样的输出 9 989 98789 9876789 987656789 。。。等等 for (int i = 1; i <= l; i++) { for (int j = 1; j <= l - i; j++) System.out.print(" "); for (int j = 1; j <= (2 * i - 1); j++)
9
989
98789
9876789
987656789
。。。等等
for (int i = 1; i <= l; i++) {
for (int j = 1; j <= l - i; j++)
System.out.print(" ");
for (int j = 1; j <= (2 * i - 1); j++) {
if((l-j) < l-i){
// here System.out.print("*");
}
else
System.out.print(l - j);
}
System.out.print("\n");
}
for(inti=1;i我要做的不仅仅是那一行
for (int j = 1; j <= (2 * i - 1); j++) {
if((l-j) < l-i){
// here System.out.print("*");
}
else
System.out.print(l - j);
for(int j=1;j我最终重写了它;我无法为您缺少的打印找到一个简明常量。如果您将I
从0
循环到l
(包括),您可以执行以下操作:
空间
最后一行(i=l
)有0个空格,因此每行都有l-i
空格:
for(int j = 0; j < l-i; j++)
System.out.print(" ");
赖特
与上面相同的循环,但相反。由于中心已在上面处理,因此从高1开始,您不想再次输出它
for(int j = l-i+1; j <= l; j++)
System.out.print(j);
for(int j=l-i+1;j这是一个完整的程序。我使用了“分而治之”的方法(基本上与Michael Mrozek的想法相同),并使用该方法使程序非常容易理解。希望这会有所帮助
public class PatternPrinter {
public static void main(String[] args) {
printAllRows(9, 5);
}
public static void printAllRows(int max, int numOfRows) {
for (int i = 1; i <= numOfRows; i++) {
printRow(numOfRows - i, max, i);
System.out.print("\n");
}
}
public static void printRow(int numOfSpaces, int max, int num) {
printSpaces(numOfSpaces);
printLeftAndCenterPart(max, num);
printRightPart(max, num - 1);
}
public static void printRightPart(int max, int num) {
while(num > 0) {
System.out.print(max - num + 1);
num--;
}
}
public static void printLeftAndCenterPart(int max, int num) {
while(num > 0) {
System.out.print(max--);
num--;
}
}
public static void printSpaces(int numOfSpaces) {
while(numOfSpaces > 0) {
System.out.print(" ");
numOfSpaces--;
}
}
公共类模式打印机{
公共静态void main(字符串[]args){
打印所有行(9,5);
}
公共静态void printalrows(int max,int numorrows){
对于(int i=1;i 0){
系统输出打印(最大-数量+1);
num--;
}
}
公共静态无效printLeftAndCenterPart(int max,int num){
while(num>0){
系统输出打印(最大--);
num--;
}
}
公共静态void打印空间(int numOfSpaces){
while(numOfSpaces>0){
系统输出打印(“”);
Numof空间--;
}
}
}你尝试了什么?什么不起作用?我们应该运行你的代码来确定哪里出了问题吗?@org不,我经常发现工作中需要输出三角形的数字:)@Falmari我猜他尝试了他发布的代码片段,他在评论中遇到了问题//这里
。。。
for(int j = l-i+1; j <= l; j++)
System.out.print(j);
public class PatternPrinter {
public static void main(String[] args) {
printAllRows(9, 5);
}
public static void printAllRows(int max, int numOfRows) {
for (int i = 1; i <= numOfRows; i++) {
printRow(numOfRows - i, max, i);
System.out.print("\n");
}
}
public static void printRow(int numOfSpaces, int max, int num) {
printSpaces(numOfSpaces);
printLeftAndCenterPart(max, num);
printRightPart(max, num - 1);
}
public static void printRightPart(int max, int num) {
while(num > 0) {
System.out.print(max - num + 1);
num--;
}
}
public static void printLeftAndCenterPart(int max, int num) {
while(num > 0) {
System.out.print(max--);
num--;
}
}
public static void printSpaces(int numOfSpaces) {
while(numOfSpaces > 0) {
System.out.print(" ");
numOfSpaces--;
}
}