我无法弄清楚如何使用嵌套循环向上然后向下计数。目前,我的输出是:
2
33
444
5555
66666
当我希望它像这样输出时:
2
33
444
33
2
我不确定如何解决此问题。我一直在努力工作,似乎无法改变方法以使其正常工作。
这是我当前的产生第一个输出的代码:
答案 0 :(得分:3)
此输出具有两个有趣的属性。对于每一行i
,我们可以这样说:
i
和times - i
之间的最小值。如果将所有内容放在一起:
int lines = 3;
int times = lines * 2;
String output = "";
for(int i = 1; i < times; i++)
{
int numChar = Math.min(i, times - i);
int toPrint = numChar + 1;
for(int k = 1; k < toPrint; k++) {
output += toPrint;
}
output += "\n";
}
System.out.println(output);
答案 1 :(得分:0)
在您的示例中,第二个内部循环什么也不做,它永远不会开始,只有第一个产生输出。我认为您的想法几乎有四个循环,两个两个嵌套。可以,但是您只需要巧妙地使用两个嵌套循环即可。
const array = $('.myClass').map((i, elem) => {
const animal = $(elem).parents('li').text();
const age = $(elem).parents('p').text();
return { animal, age };
}).get();
console.log(array);
诀窍在于如何使用第二个循环的索引:public static void main(String[] args){
int lines = 3;
int times = lines * 2;
int x = 2;
String output = "";
for(int i = 1; i < times; i++) {
for (int k = 1; k <= Math.min(times-i, i); k++) {
output = output + x;
}
//Update the index
if (i < times/2) {
x++;
} else {
x--;
}
output += "\n";
}
System.out.println(output);
}
。
编辑: 编辑之后,您似乎希望数字“旋转”(即... 8,9,0,1 ...)。为了实现这一点,您可以在内部循环中完成:
Math.min(times-i, i)
另一个选项(在内循环之外):
String xS = String.valueOf(x);
output += xS.charAt(xS.length()-1);