怎么得到这个奇怪的逻辑?

时间:2018-06-10 15:30:00

标签: design-patterns

给定,输入= {2,4,1,6}

输出=打印的图案为,

       *
       *
   *   *
   *   *
 * *   *
 * * * *

这种模式背后的逻辑是什么?(恒星之间可能存在或不存在空格。)

1 个答案:

答案 0 :(得分:1)

找出数组中的最大数字。现在从该数字循环到0并检查数组的每个元素。如果它等于第i个数,则打印*并减少数组中的数字。不打印空间。

伪代码:

max = maximum in array
for i=max to 0:
    for j=0 to the array_size:
        if arr[j]==i:
             print(*)
             arr[j]--
        else:
            print(" ")