方法一
思路:首先求出个、十、百、千位上分别对应的数字,然后对其进行相关运算之后在将值赋值给它自身。最后根据题目要求交换位置进行字符串的拼接即可。
function mw(num) {
var g = parseInt(num / 1) % 10;
var s = parseInt(num / 10) % 10;
var b = parseInt(num / 100) % 10;
var q = parseInt(num / 1000) % 10;
g = (g + 5) % 10;
s = (s + 5) % 10;
b = (b + 5) % 10;
q = (q + 5) % 10;
return '' + g + s + b + q;
}
var result = mw(1234)
(result);
方法二
思路:此方法是上一方法的简化版,首先定义一个空的字符串,利用for循环遍历,由上可知num除的数字10的0、1、2、3次方,故i的取值为0-3,每循环一次都会取出一个数字,从个位开始选取,刚好个位的字符在空字符串的第一个位置,也即相当于交换了个位于千位的数字。(其他位类似)
function test2(num) {
var arr = "";
for (var i = 0; i <= 3; i++) {
var temp = 10 ** i;
var res = parseInt(num / temp) % 10;
// (res);
res += 5;
res %= 10;
// (res);
arr += res;
}
(arr);
return arr;
}
test2(1234);
举栗子扩展:若输入的是以字符串形式输入的数字呢
思路:首先同上定义一个空的字符串,使用arguments[i]取出每一个下标对应的元素。进行相关运算之后,然后定义两个临时变量来进行元素的交换。
function pss() {
var str1 = "";
var num1 = (arguments[0] + 5) % 10;
var num2 = (arguments[1] + 5) % 10;
var num3 = (arguments[2] + 5) % 10;
var num4 = (arguments[3] + 5) % 10;
str1 = str1 + num1 + num2 + num3 + num4;
(str1);
var str2 = "";
var temp1;
temp1 = num1;
num1 = num4;
num4 = temp1;
var temp2;
temp2 = num2;
num2 = num3;
num3 = temp2;
str2 = str2 + num1 + num2 + num3 + num4;
(str2);
}
pss(1, 2, 3, 4);