每日一题——LeetCode1281.整数的各位积和之差

发布时间:2024年01月17日

方法一 个人方法:

没啥好说的,循环取n的最后一位就行:

var subtractProductAndSum = function(n) {
    var mulSum=n%10,addSum=n%10
    n=Math.floor(n/10)
    while(n/10>0){
        let num=n%10
        mulSum*=num
        addSum+=num
        n=Math.floor(n/10)
    }
    return mulSum-addSum
};

消耗时间和内存情况:

方法二 eval():

这是一种非常有意思的方法:

var subtractProductAndSum = function(n) {
    let arr = (n+'').split('')
    let a=eval(arr.join('*'))
    let b=eval(arr.join('+'))
    return a-b
};

先把数值类型的n转为字符串再转为数组

把数组拼接成乘法和加法算式模式的字符串

通过eval()函数将字符串转为javascript代码并执行就会返回计算结果

????????JavaScript的eval()函数主要用于执行字符串中的JavaScript代码。它可以把字符串当作JavaScript表达式一样去执行,从而动态地执行字符串中的JavaScript代码,并返回执行结果。
????????eval()函数的使用场合主要包括:当我们预先不知道要执行什么语句,只有当条件和参数给出时才知道执行什么语句的时候。例如,如果我们要做一个function,功能是输入网页中两个对象的名称,然后程序就将这两个对象的值联接起来输出,这时候就可以使用eval()函数来实现这个功能。
????????需要注意的是,eval()函数虽然功能强大,但使用不当可能会导致安全问题,例如执行恶意代码等,因此使用时需要谨慎。

消耗时间和内存情况:

文章来源:https://blog.csdn.net/weixin_52878347/article/details/135658571
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。