沿顺时针方向循环显示一组数字

时间:2019-05-16 11:04:19

标签: javascript math

我的数字介于65到90

我想将数字移到后面13位,但是该数字应从90开始,直到数字减少到65以下。

例如:如果我有67岁,应该是79岁,但是78岁应该是65岁,而77岁应该是90岁

我尝试使用if循环

var n = 67

if ((n - 13) < 65) {
  console.log(90 - (13 - (n - 65)))
}
else {
  console.log(n - 13)
}

但是如何使用算术来简化代码?

1 个答案:

答案 0 :(得分:2)

您可以通过减去65的偏移量来获得零的基值,添加偏移值并使用reaminder来获取介于零到25之间的值,然后再次添加偏移量。 / p>

  

看起来像Caesar cipherROT13

from 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
     >A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
      N  O  P  Q  R  S  T  U  V  W  X  Y  Z >A  B  C  D  E  F  G  H  I  J  K  L  M
 to  78 79 80 81 82 83 84 85 86 87 88 89 90 65 66 67 68 69 70 71 72 73 74 75 76 77 

function shiftBy(value, shift) {
    return (value - 65 + shift) % 26 + 65;
}

console.log(shiftBy(67, 13)); // 80
console.log(shiftBy(77, 13)); // 90
console.log(shiftBy(78, 13)); // 65