输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示。
输出一个数,即表达式的值
3+5*7
56
//引入readline模块
var readline = require('readline');
//创建readline接口实例
var ri = readline.createInterface({
input: process.stdin,
output: process.stdout
});
//获取输入数据并进行操作
ri.on('line',function(line){
var nums = line.match(/(\d+)/g); //把表达式中的数字存到数组nums中
var symbol = line.match(/\+|\-|\*/g); //把表达式中的符号存到数组symbol中
var arr = [];
var len1 = nums.length;
var len2 = symbol.length;
var len = Math.min(len1,len2);
//将数字和符号整合到一个数组中
for(var i = 0; i < len; i ++){
arr.push(nums[i]);
arr.push(symbol[i]);
}
arr.push(nums[len1-1]);
//将数组转换成字符串
var str = arr.join("");
var result = parseInt(str.charAt(0));
for(var i = 1; i < (len1 + len2); i ++){
if(str.charAt(i) == '+'){
i ++;
var temp = parseInt(str.charAt(i));
result = result + temp;
}else if(str.charAt(i) == '-'){
i ++;
var temp = parseInt(str.charAt(i));
result = result - temp;
}else if(str.charAt(i) == '*'){
i ++;
var temp = parseInt(str.charAt(i));
result = result * temp;
}
}
console.log(result);
})
var readline = require('readline'); var rl= readline.createInterface({ input : process.stdin, output : process.stdout }) var num = 0; var mod = "+"; rl.on("line",function(input){ input.replace(/(\d+)([-+*]|)/g,function($0,$1,$2){ $1=~~$1; //对num和$1进行求值运算 第一次是计算0+$1 num=({ "+":num+$1, "-":num-$1, "*":num*$1 }[mod]); //记录下一次的求值方式 mod=$2; return $0; }) console.log(num); num=0; })