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--;
}
}
很高兴能帮助你更多,但在此之前,我希望你尽最大努力。
祝好运