Софтуерно Инженерство
Loading...
+ Нов въпрос
Ivankooo1 avatar Ivankooo1 11 Точки

6. Wrong Result - Lab - JS Fundamentals - may 2019

Здравейте хора Бих искал да получа малко помощ от вас за тази задача 6. Wrong Result - https://softuni.bg/trainings/resources/officedocument/40629/lab-js-fundamentals-may-2019/2343 в лаб тъй като не успях да я завърша и разбера идеята. Ето моя опит https://pastebin.com/43szGwN8

Тагове:
1
Fundamentals Module
willystyle avatar willystyle 1285 Точки
Best Answer

Може би искат нещо такова, колкото и да е грозно, логиката е да въртиш знаците, подобно на бройна система, за да ги изредиш всички възможности:

function wrongResult(numOne, numTwo, numThree) {
    let result = '';
    if (numOne == 0 || numTwo == 0 || numThree == 0) {
        result = 'Positive';
    } else if (numOne > 0 && numTwo > 0 && numThree > 0) {
        result = 'Positive';
    } else if (numOne > 0 && numTwo > 0 && numThree < 0) {
        result = 'Negative';
    } else if (numOne > 0 && numTwo < 0 && numThree > 0) {
        result = 'Negative';
    } else if (numOne > 0 && numTwo < 0 && numThree < 0) {
        result = 'Positive';
    } else if (numOne < 0 && numTwo > 0 && numThree > 0) {
        result = 'Negative';
    } else if (numOne < 0 && numTwo > 0 && numThree < 0) {
        result = 'Positive';
    } else if (numOne < 0 && numTwo < 0 && numThree > 0) {
        result = 'Positive';
    } else if (numOne < 0 && numTwo < 0 && numThree < 0) {
        result = 'Negative';
    }
    console.log(result);
}

но бих ти предложил и рекурсивно решение, което също не изчислява числото, а само проверява знаците, и най-важното, решава общия случай при произволен брой числа, не само на 3:

function wrongResult(...nums) {
    recursiveSign(nums);
    function recursiveSign(nums, sign = 'Positive') {
        if (nums.length === 0 ) {
            console.log(sign);
            return;
        }
        let num = nums.pop();
        if (num === 0 ) {
            console.log('Positive');
            return;
        }
        if ((sign === 'Positive' && num > 0) || (sign === 'Negative' && num < 0)) {
            recursiveSign(nums, 'Positive');
        } else {
            recursiveSign(nums, 'Negative');
        }
    }
}

 

0
15/09/2019 15:03:14
Ivankooo1 avatar Ivankooo1 11 Точки

Благодаря за решенията :)

1
slawi132 avatar slawi132 8 Точки

Не си направил порверки, когато 2 от числата са отрицателни например като умножаваш 1 * -4 * -5  ще стане 20, а не - 20

0