一句代码将2转化为1,1转换为2

lucky-lucky 2012-11-28 10:40:36
如题,不能使用if语句,只使用加减乘除余,不能使用三目运算符
...全文
371 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucky-lucky 2012-12-09
  • 打赏
  • 举报
回复
其实我是要用在存储过程里面的,表驱动太高级了,sql实现不了
lucky-lucky 2012-12-09
  • 打赏
  • 举报
回复
反正把目前的问题解决了,这就行了,哈哈
yisikaipu 2012-12-03
  • 打赏
  • 举报
回复
引用 20 楼 pengyw 的回复:
引用 19 楼 yisikaipu 的回复:引用 16 楼 pengyw 的回复: 二,容易维护:如果哪天楼主又该需求,要求1边成100,2边成51,只需要更改一下数组为{0xff,100,51};就万事大吉了。用用3-X怎么改呢? 貌似改成 X=151-X 就可以嘛 大哥,151-1 = 150, 151-2 =149
小弟,你不是1变成了100,2变成了51么,怎么还拿1,2去减? 151-100=51 151-51=100 啊
pengyw 2012-12-03
  • 打赏
  • 举报
回复
引用 19 楼 yisikaipu 的回复:
引用 16 楼 pengyw 的回复: 二,容易维护:如果哪天楼主又该需求,要求1边成100,2边成51,只需要更改一下数组为{0xff,100,51};就万事大吉了。用用3-X怎么改呢? 貌似改成 X=151-X 就可以嘛
大哥,151-1 = 150, 151-2 =149
pengyw 2012-12-03
  • 打赏
  • 举报
回复
引用 23 楼 yisikaipu 的回复:
引用 22 楼 pengyw 的回复: 没有意思,不和你争了 是不争了。有一个人脑子拎不清,但愿这个人是我
yisikaipu 2012-12-03
  • 打赏
  • 举报
回复
引用 22 楼 pengyw 的回复:
没有意思,不和你争了
是不争了。有一个人脑子拎不清,但愿这个人是我
pengyw 2012-12-03
  • 打赏
  • 举报
回复
引用 21 楼 yisikaipu 的回复:
引用 20 楼 pengyw 的回复: 引用 19 楼 yisikaipu 的回复:引用 16 楼 pengyw 的回复: 二,容易维护:如果哪天楼主又该需求,要求1边成100,2边成51,只需要更改一下数组为{0xff,100,51};就万事大吉了。用用3-X怎么改呢? 貌似改成 X=151-X 就可以嘛 大哥,151-1 = 150, 151-2 =149 小弟,你不是1变成……
X=151-X,怎么把1变100?没有意思,不和你争了
yisikaipu 2012-11-30
  • 打赏
  • 举报
回复
引用 16 楼 pengyw 的回复:
二,容易维护:如果哪天楼主又该需求,要求1边成100,2边成51,只需要更改一下数组为{0xff,100,51};就万事大吉了。用用3-X怎么改呢?
貌似改成 X=151-X 就可以嘛
lucky-lucky 2012-11-30
  • 打赏
  • 举报
回复
我服了3-x了,牛叉
老王爱上猫 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 FancyMouse 的回复:
>只使用加减乘除余 不就是3-x么……
强大,简单
一脉清清 2012-11-29
  • 打赏
  • 举报
回复
3-x强大。
ziyue007 2012-11-29
  • 打赏
  • 举报
回复
3—X 多简单啊
mujiok2003 2012-11-29
  • 打赏
  • 举报
回复
表驱动也可以。
unsigned char helper[] = {0xff, 0x02, 0x01};
int a;
//....
//a 等于1 或2
a = helper[a];
mymtom 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 FancyMouse 的回复:
>只使用加减乘除余 不就是3-x么……
我咋就想到呢?
zhf24148517 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 FancyMouse 的回复:
>只使用加减乘除余 不就是3-x么……
我想的也是这个...
FancyMouse 2012-11-29
  • 打赏
  • 举报
回复
>只使用加减乘除余 不就是3-x么……
pengyw 2012-11-29
  • 打赏
  • 举报
回复
another answer is : a = 1 + (a==1);// or a = 1+ (a!=2);
pengyw 2012-11-29
  • 打赏
  • 举报
回复
引用 9 楼 mujiok2003 的回复:
表驱动也可以。 C/C++ code?? 12345 unsigned char helper[] = {0xff, 0x02, 0x01}; int a; //.... //a 等于1 或2 a = helper[a];
3-X是特殊话的算发 mujiok2003 兄第的做法我很欣赏: 优点如下: 一,使用查表法,快速快 二,容易维护:如果哪天楼主又该需求,要求1边成100,2边成51,只需要更改一下数组为{0xff,100,51};就万事大吉了。用用3-X怎么改呢?
盛夏 2012-11-29
  • 打赏
  • 举报
回复
和3异或 >只使用加减乘除余 不就是3-x么…… 这…… 佩服.没想到!
Phoenix_FuliMa 2012-11-29
  • 打赏
  • 举报
回复
3-x 很好,很强大
加载更多回复(6)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧