祝您假期愉快,谢谢您的帮助
我已经尽力解决了我的问题,但是我没有给出足够的信息,我会尝试重新制定它。
我要输出的是这些数字
input 14:1 output 141
input 13:8 output 141
input 13:18 output 241
input 18:13 output 291 计算如下:输入14:1 4+1不大于9,所以数字1是其余的,我们把它留在末尾,然后在输出141之前加上14。
输入13:8 3+8大于9 (11),所以我将其中1:3变成4,1是我们在最后输出时添加的其余部分。
input 13:18 output 241
input 18:13 output 291 试图帮助我这里是一个例子代码,他们感谢一个来自德国的女人。
const
fn = string => {
const
sum = (a, b) => (a + b).toString().padStart(2, 0).split(''),
[a, b] = string.split(':').map(s => s.padStart(2, 0)),
result = [];
let i = 2;
while (i--) {
const sum = +a[i] + +b[i];
result[i] = sum > 10
? +[+a[i] + Math.floor(sum / 10), sum % 10].join('')
: sum === 10 ? 1 : sum;
}
return result.join('');
};
console.log(fn('13:18')); // I want 241 correct output 241
console.log(fn('18:13')); // I want 291 correct output 291
console.log(fn('13:15')); // I want 28 correct output 28
console.log(fn('15:13')); // I want 28 correct output 28
console.log(fn('14:1')); // I want 141 bad output 15
console.log(fn('13:8')); // I want 141 correct output 141
console.log(fn('78:96')) // I want 174 bad output "8694"这段代码计算了一些结果是正确的,有些是不正确的。
如果小于10 console.log (fn ('14: 1 '));//我希望这141个输出/给出一个糟糕的输出"15“
发布于 2021-12-25 20:24:08
根据您所解释的逻辑,并假设数字最大为2长度。
P.S. +(加号)前缀将字符串转换为整数运行时。
第一解=>
const fn = (string) => {
const [a,b] = string.split(':').map(s=>s.padStart(2,0)), result=[];
// for first position
result[0] = +a[0] + +b[0];
// for second position
let secondIndexTotal = (+a[1] + +b[1]).toString();
result[1] = +secondIndexTotal > 9 ? (+a[1] +
+secondIndexTotal[0]).toString() + secondIndexTotal[1] : a[1]+b[1];
return result.join('');
}
console.log(fn('13:18')); // output 241
console.log(fn('18:13')); // output 291
console.log(fn('13:15')); // output 235
console.log(fn('15:13')); // output 253
console.log(fn('14:1')); // output 141
console.log(fn('13:8')); // output 141
更新解决方案=>
const fn = (string) => {
const [a, b] = string.split(":").map((s) => s.padStart(2, 0)),
result = [];
// for second position
const secondIndexTotal = (+a[1] + +b[1]).toString();
result[1] = +secondIndexTotal > 9 ? secondIndexTotal[1] : b[1];
// for first position
const firstIndexTotal = +a[0] + +b[0];
result[0] =
firstIndexTotal > 9
? firstIndexTotal + (+secondIndexTotal > 9 ? +secondIndexTotal[0] : 0)
: firstIndexTotal.toString() +
(+a[1] + (+secondIndexTotal > 9 ? +secondIndexTotal[0] : 0));
return result.join("");
};
console.log(fn("13:18")); // output 241
console.log(fn("18:13")); // output 291
console.log(fn("78:96")); // output 174
console.log(fn("14:1")); // output 141
console.log(fn("13:15")); // output 235
console.log(fn("15:13")); // output 253
https://stackoverflow.com/questions/70482182
复制相似问题