用于创建重复递增 - 递减 - 递减数字序列的算法

时间:2017-04-15 09:00:18

标签: for-loop

我一直在苦苦挣扎几个小时,是否有人知道如何创建一个增加1的一系列数字,并且在达到最大数量时,它会减少一个到最小值并再次重复。例如,

1 2 3 2 1 2 3 2 1或

1 2 3 4 3 2 1 2 3 4 3 2 1.

要创建它,只使用一个循环

2 个答案:

答案 0 :(得分:1)

您可以循环并检查产品的每一步的最大值和最小值,然后旋转子/添加的方向。

function alg(length, max) {
  var min = 1;
  var direction = 1;
  var product = 1;

  for (var i = 0; i < length; i++) {
    if (product >= max) { direction = -1; } 
    else if (product <= min) { direction = 1; }
    console.log(product);
    product += direction;
  }
}

答案 1 :(得分:1)

# Assume max, min & count defined
for ( n=min, delta=1, i=0; i<count; i++ ) {
    Print n;
    If ( n==max )
        delta=-1;
    Else if ( n==min )
        delta=1;
    n+=delta;
}