Я хочу получить сумму трех чисел без использования символов + или * - PullRequest
1 голос
/ 10 июля 2020

Я не хочу использовать какие-либо + или * в своей функции, поэтому я помещаю «var sum1 = a + b» в качестве глобальной переменной, а затем помещаю ее в «var sumAB», чтобы добавить к ней аргумент «c ". но я не знаю, что не работает?

подсказка: - Я не хочу делать var sum1 = a + b + c.

var sum1 = a+b //global variable

function sumAndMultiply (a, b, c){

    var sumAndMulArray = [];
    var sumAb = (sum1, c)[0];
    var finalSum = (sumAb)[0];
    return sumAndMulArray[0] = finalSum
    console.log(sumAndMultiply); 
}
SumAndMultiply(4,7,5);

Ответы [ 3 ]

1 голос
/ 10 июля 2020

Похоже, цель вашего задания - позволить вам реализовать + оператор с помощью битового оператора .

Ниже приведен один пример:

function add (num1, num2) {
    if(num2 == 0) return num1;
    let sum = num1 ^ num2;
    let carry = (num1 & num2) << 1;
    return add(sum, carry);
}

function sumAndMultiply (a, b, c){
  return add(a, add(b, c))
}
console.log(sumAndMultiply(4, 7, 5))
console.log(sumAndMultiply(24, 77, 105))
1 голос
/ 10 июля 2020

Кажется очень странным не использовать символы + или - в вашей функции. Похоже, что их можно использовать во внешней программе, например, в вашем объявлении var sum1 = a+b. Если единственное требование состоит в том, чтобы функция sumAndMultiply не содержала + или -, тогда вы можете просто написать другую функцию, чтобы определить свой собственный синтаксис для добавления:

function sum(n1,n2){
return(n1+n2);
}
function sumAndMultiply (a, b, c){
return(sum(sum(a,b),c));
}
console.log(sumAndMultiply(4,7,5));

Все это кажется излишне сложно. Было бы проще использовать простой собственный синтаксис javascript.
Кстати, console.log в вашем исходном коде никогда не будет выполняться, поскольку функция завершается, когда видит оператор return в строке выше. Поместите любой код, который вы хотите выполнить, перед оператором return. Кроме того, javascript чувствителен к регистру, поэтому вызов SumAndMultiply с большой буквы не вызовет строчную функцию sumAndMultiply.

0 голосов
/ 10 июля 2020

    const getSum = (a, b, c) => {
        var _a = new Array(a).fill(true);
        var _b = new Array(b).fill(true);
        var _c = new Array(c).fill(true);

        return _a.concat(_b, _c).length
    }
    console.log(getSum(10, 10, 10));
...