对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
输出rev(rev(x) + rev(y))的值
123 100
223
var lines = readline(); var x = +lines.split(" ")[0]; var y = +lines.split(" ")[1]; function rev(str){ str = ""+str; let str_arr = str.split(""); let arr = []; for(let i=str_arr.length-1; i>=0; i--){ arr.push(str_arr[i]); } while(arr[0]===0){ arr.splite(0,1); } return +(arr.join("")); } console.log(rev(rev(x) + rev(y)));基础题吧……我觉得我要先把数字转成字符串再转成数组简直就是** = = 滚去看别人的好方法了~
var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function (line) { var inputArr = line.split(' '); inputArr.map(function (item) { return parseInt(item); }); var x = inputArr[0]; var y = inputArr[1]; console.log(rev(rev(x) + rev(y))); }); function rev(num) { return parseInt(num.toString().split('').reverse().join('')); } 这里的关键在于以下几点: 1. 通过将数字转化为字符串,再将字符串转化为数组,我们可以很方便的调用api操作数组。 2. 通过parseInt函数,我们可以很容易地解决反转之后去除前导0的问题,这样,我们就可以得到最终结构了。 3. 虽然这些内容都是可以写在一起的,但是更好地做法是将一个单独的功能封装为函数,这样就可以避免复制、粘贴这样的冗余操作了。
//javascript操作字符串 var readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function(line){ var tokens = line.split(' '); //先转换成字符串,翻转去前导零后返回 function rev(num){ var str = num.toString().split('').reverse().join('').replace(/^0+/, ''); return parseInt(str); } console.log(rev(rev(parseInt(tokens[0]))+rev(parseInt(tokens[1])))); });