嘿,我很难找到打印这种模式的逻辑。我试了很多但找不到任何办法。
我的问题是:
我有一个包含一些随机整数的数组,基于此我必须以垂直格式打印星号(*)。
例如:
array = [2,3,5,2,6];
然后模式将是:
*
* *
* *
** *
*****
*****
答案 0 :(得分:1)
以下是如何在Java中执行此操作,没有临时数组(Java Fiddle here):
public static void main(String []args){
final int[] array = new int[]{2,3,5,2,6};
int max = -1; // Maximum of all integers
for (int num : array) {
max = Math.max(max, num);
}
for (int vert = 0; vert < max; ++vert) {
for (int horz = 0; horz < array.length; ++horz) {
System.out.print(array[horz] >= max-vert ? '*' : ' ');
}
System.out.println();
}
}
输出:
*
* *
* *
** *
*****
*****
答案 1 :(得分:0)
我建议你这样做。
初始化2D数组。 行数等于数组中的最高数。和列等于数组中的整数数。
然后,您可以使用相应数量的星形填充数组,以获取数组中的特定索引。希望至少能让你理解一个多元逻辑。
答案 2 :(得分:0)
~/.bash_aliases