繁体   English   中英

如何最小化绝对差异?

[英]how to minimize the absolute difference?

我们得到一个数字 n。 我们必须找到两个(即-sum1,sum2),使得sum1+sum2=数字之和[1到n]并且sum1和sum2的绝对差最小化。

eg:-let n=3

sum1=1+2
sum2=3
abs(3-3)=0 (minimum possible value that we can get)

我的 function findSum1Sum2(n) 收到 integer 正数“n”(参数)并将所有数字求和。 然后找到 sum1 和 sum2 两个条件:

  • sum1 + sum2 = 数字 n 的所有数字的总和。
  • |sum1 - sum2| 被最小化。

我假设 sum1 和 sum2 可以具有相同的值。

 function findSum1Sum2(n) { if(Number.isInteger(n) && n >= 0) { let sumNumberDigits = 0; let sum1, sum2; for(let d of n.toString()) { sumNumberDigits += parseInt(d); } if(sumNumberDigits % 2 == 0) { sum1 = sum2 = sumNumberDigits / 2; } else { sum1 = Math.floor(sumNumberDigits / 2); sum2 = sum1 + 1; } console.log(`sum1 is ${sum1} and sum2 is ${sum2}. sum1 + sum2 is ${sum1 + sum2}. |sum1 - sum2| is ${Math. abs( sum1 - sum2)}.`); } else { console.log(`${n} is not an integer positive number.`); } } findSum1Sum2(3); //result -> sum1: 1 and sum2: 2. findSum1Sum2(111); //result -> sum1: 1 and sum2: 2. findSum1Sum2(4); //result -> sum1: 2 and sum2: 2. findSum1Sum2(4388); //result -> sum1: 2 and sum2: 2.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM