While循环数字模式



1.(

1
22
333
4444
55555
666666
7777777
88888888
999999999

2.(

999999999
88888888
7777777
666666
55555
4444
333
22
1

3.(

5
444
33333
2222222 
111111111

这些是我需要做的作业。

我只在下面做过:

public static void main(String []args){
int i, j;
i = 1;
while(i <= 10)
{
j = 1;
while (j <= i) // limit the variable j by i 
{
System.out.print(j);
j++;
}
System.out.println();
i+;
}
}

打印出来的:

1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910

我不知道如何做上面三项作业中的任何一项。有什么帮助吗?

我认为模式是非常明显的

1.(

String s;
for(int i = 0; i < 10; i++) {
s = "";
for(int j = 0; j < i; j++) {
s += i;
}
System.out.println(s);
}

https://ideone.com/owLEG8

2.(你只需要反转第一个答案

3.(

String s;
for(int i = 0; i < 5; i++) {
s = "";
for(int j = 0; j < 5 - i; j++) {
s += ' ';
}
for(int j = 0; j < 1 + i * 2; j++) {
s += 5 - i;
}
System.out.println(s);
}

https://ideone.com/prkNgs

如果您使用的是Java 8,则可以使用String.join()Collections.nCopies()来实现以下目标:

1.(

for (int i = 1; i < 10; i++) {
System.out.println(String.join("", Collections.nCopies(i, String.valueOf(i))));
}

2.(

for (int i = 9; i > 0; i--) {
System.out.println(String.join("", Collections.nCopies(i, String.valueOf(i))));
}

3.(使用System.out.printf()进行格式化。

for (int i = 5; i > 0; i--) {
String format = "%" + String.valueOf(10-i) + "sn";
System.out.printf(format, String.join("", Collections.nCopies((5-i)*2+1, String.valueOf(i))));
}

情况1:循环时,在第二行打印i而不是j

样本/提示

while (j <= i) // limit the variable j by i 
{
System.out.print(i);
j++;
}

情况2:切换while循环的位置,即外循环将从最大值减小到最小值,或者内循环可以以递减的方式完成

Not giving code so you can try and learn

案例3:一旦你解决了1和2,我相信3对你来说不会是什么大不了的

public static void main(String args[])
{
int i, space, rows=5, k=0;
for(i=1; i<=rows; i++)
{
for(space=1; space<=(rows-i); space++)
{
System.out.print("  ");
}
while(k != (2*i-1))
{
System.out.print(i + " ");
k++;
}
k = 0;
System.out.println(); \enter into new line
}
}

仅使用WHILE循环(反向打印(

public static void main(String args[])
{
int i=1, space, rows=5, k=0;
int j=rows;
while(i<=5){
space=rows;
while(space>=i){
System.out.print("  ");
space--;
}
while(k != (2*i-1))
{
System.out.print(j + " ");
k++;
}
k = 0;
System.out.println(); //enter into new line
i++;
j--;
}
}

很高兴能帮助你更多,但在此之前,我希望你尽最大努力。

祝好运

相关内容

  • 没有找到相关文章

最新更新