我的数字介于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)
}
但是如何使用算术来简化代码?
答案 0 :(得分:2)
您可以通过减去65
的偏移量来获得零的基值,添加偏移值并使用reaminder来获取介于零到25之间的值,然后再次添加偏移量。 / p>
看起来像Caesar cipher和ROT13:
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