对于一个整数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]))));
});