我一直试图从 LeetCoode 中找出这个问题。问题是这样的:给定一个整数n,返回它的各位数字的乘积和它的各位数字之和之间的差。
这是我到目前为止的代码:
/**
* @param {number} n
* @return {number}
*/
//n=234
var subtractProductAndSum = function(n) {
var z= n.toString().length;
var g= n.toString()
for(var i=0; i<z; i++){
var p= g[i]+g[i+1]+g[i+2];
var y=g[i]*g[i+1]*g[i+2];
var d= y-p
}
return d;
};
最佳答案
您的解决方案假设该数字为三位数,这可能不是问题的目的。
我会遍历这个数字并一一提取数字,然后对它们进行求和和相乘。然后,将两者相减:
var subtractProductAndSum = function(n) {
// Initialize the sum and the product with neutral values
var sum = 0;
var product = 1;
while (n > 0) {
var digit = n % 10;
sum += digit;
product *= digit;
n = Math.floor(n / 10);
}
return product - sum;
};
关于javascript - LeetCode : 1281. 整数的乘积与位数之和相减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546839/