如果输入为1则如何编写返回2的函数,如果输入为2则返回1?

时间:2014-03-28 03:54:40

标签: javascript

我只是想向社区分享这个面试问题,以便将来可能会遇到这个问题的人至少知道如何回答这个问题:

问题:

  • 编写一个接受1个数字参数1或2的函数(无需在函数中进行验证)。如果输入为2,则此函数必须返回1,如果输入为1,则返回2。
  • 针对此问题编写至少四种解决方案。这意味着用不同的方法编写四个函数。

为了使答案保持一致,让我们用JavaScript编写函数

快乐的编码! :d

2 个答案:

答案 0 :(得分:3)

您可以使用二进制XOR和3来执行此操作

function returnTwo(input) {
    return input ^ 3;
}

Phil suggested

function returnTwo(input) {
    return ~input + 4;
}

或者

function returnTwo(input) {
    return (input * 2) % 3;
}

或者

function returnTwo(input) {
    return Math.abs(input - 3);
}

function returnTwo(input) {
    return input === 1 ? 2 : 1;
}

或者

function returnTwo(input) {
    return (input - 1) ? 1 : 2;
}

或者

function returnTwo(input) {
    return input * input === input ? 2 : 1;
}

- 编辑s4m0k

function returnTwo (input ) {
    return 3 - input;
}

答案 1 :(得分:1)

我是JS的新手。

但这是逻辑。假设变量a和b是两个可能的输入。

 var a, b, input;

1。简单的if-else

  if(input==a) return b; else return a;

2。我们知道2个可能的输入,

  return ((a+b)-input);

3。类似地,

   return ((a*b)/input);

4。与代数一起玩,可以与上述解决方案进行多种组合。