Javascript. Неверный результат сравнения - PullRequest
0 голосов
/ 04 июля 2018
fs.readFile('./input.txt', (error, data) => {
if(error)
    console.log(error);
const input = data.toString();
const dataArray = input.split(/[\n\r ]+/);
const lastItem = dataArray.length;
let accumulator = 0;
let counter = 0;
for(let i=0; i<lastItem-1; i++) {
    let tempArray = dataArray[i];
    let splitArray = tempArray.split('x');
    let a = splitArray[0];//length
    let b = splitArray[1];//width
    let c = splitArray[2];//height
    let d = a<b? (b<c?c:b) : (a<c?c:a);
    let output = 0;
    if(d === a)
        output = (2*b + 2*c + a*b*c);
    else if(d === b)
        output = (2*a + 2*c + a*b*c);
    else
        output = (2*b + 2*a + a*b*c);   
    accumulator += output;
}})

Входной сигнал: 3x11x24 13x5x19 1x9x27

Это мой код и ввод. И я хочу знать, почему я получаю неправильные сравнения, чтобы получить число «d». Я хочу, чтобы 'd' было самым большим из каждых 3 чисел на входе. И что действительно странно для меня, это когда я хочу сначала ввести console.log (a

1 Ответ

0 голосов
/ 04 июля 2018

В вашем коде a, b, c - строки. Вы разбиваете строку, и в результате вы получаете строку. Вам нужно привести число к номеру.

let a = +splitArray[0];//length
let b = +splitArray[1];//width
let c = +splitArray[2];

Приведет строку к числу, и ваши сравнения будут работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...