我想编写一个获取数字 X 的函数,如果 X=5 它返回 7 ,如果 X=7 它返回 5 ,否则返回其他东西。有一种简单的方法-使用“if”块另一种方法-使用映射(5映射到7,7映射到5)第三种方法-编写匹配的线性数学方程但我正在寻找第4种方法这样做(再次 - 根本不使用“if”块)。
感觉我需要使用位操作,但我在这方面并不占主导地位,所以我需要帮助。
有任何想法吗?
谢谢!
我想编写一个获取数字 X 的函数,如果 X=5 它返回 7 ,如果 X=7 它返回 5 ,否则返回其他东西。有一种简单的方法-使用“if”块另一种方法-使用映射(5映射到7,7映射到5)第三种方法-编写匹配的线性数学方程但我正在寻找第4种方法这样做(再次 - 根本不使用“if”块)。
感觉我需要使用位操作,但我在这方面并不占主导地位,所以我需要帮助。
有任何想法吗?
谢谢!
int fun(int p)
{
return p^2;
}
除了明显的按位异或解决方案外,您还可以利用布尔表达式返回 1 或 0 的事实,例如
int f(int x)
{
return (x == 5) * 7 + (x == 7) * 5;
}
还有其他简单的算术方法,例如
int f(int x)
{
return 12 - x;
}
我希望这不是我为你做的功课:
int mysteriousFunction( int x ) {
return (x ^ 2);
}
如果输入范围有界且很小,则将输入用作结果查找表的索引...