有一个算法的问题,想了很久,谁能帮忙想想

sunbo624 2013-02-17 02:06:36
输入一个数,如果这个数比30大就返回30,否则就返回它本身。
这个算法怎么实现,不用判断,只用一个表达式
各位大侠帮忙想想啊
...全文
645 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
oBazzinga 2013-04-11
  • 打赏
  • 举报
回复
x - (x mod 30)
liufuguansheng 2013-04-03
  • 打赏
  • 举报
回复
来学习的。。他们都很厉害。三元,abs,01,我当初也只是想到这些。。。
hjszbazm 2013-04-03
  • 打赏
  • 举报
回复
public static float Cacu(float n) { return 30 * ((((((int)((n - 30) % 2)) + ((int)((n - 31) % 2))) | 1) + 1) / 2) + n * (1 - ((((((int)((n - 30) % 2)) + ((int)((n - 31) % 2))) | 1) + 1) / 2)); } 支持小数和正负数
leecyi 2013-04-03
  • 打赏
  • 举报
回复
这题就是神经病,在实际应用中有P用.关键是解决实际问题.
符号空间 2013-04-02
  • 打赏
  • 举报
回复
如果你弄一个矩阵,然后按另一个一维数组中的数,进行运算,比如 异或 ,然后得到的数据就另外一个数据, 那么根据这个,如果你提供的数组中的数据,有一定的规律,就会构成一个具有 创造意义的 算法。 因为它会构造出新的数据,
sunbo624 2013-02-18
  • 打赏
  • 举报
回复
引用 16 楼 zhangqinhappy 的回复:
想多了伤神。。。
确实
sunbo624 2013-02-18
  • 打赏
  • 举报
回复
引用 22 楼 zgxyz2010 的回复:
可是面试题?
不是 不过我觉得很练思维
小竹z 2013-02-18
  • 打赏
  • 举报
回复
可是面试题?
sunbo624 2013-02-17
  • 打赏
  • 举报
回复
引用 15 楼 icesnowjank 的回复:
为什么不能用判断
没意思啊 想挑战高难度的
  • 打赏
  • 举报
回复
00011111同或你的数
  • 打赏
  • 举报
回复
错了, 30的二进制表示是00011111,数电好久不用了。
  • 打赏
  • 举报
回复
30的二进制表现:00110000 00110000同或你的数
zhangqinhappy 2013-02-17
  • 打赏
  • 举报
回复
想多了伤神。。。
icesnowjank 2013-02-17
  • 打赏
  • 举报
回复
为什么不能用判断
prettynacl 2013-02-17
  • 打赏
  • 举报
回复
要是有正有负 (x-30)&0x80000000?x:30;
prettynacl 2013-02-17
  • 打赏
  • 举报
回复
如果是正数,则 return (x/30)?30:x;
fire_woods 2013-02-17
  • 打赏
  • 举报
回复
//假设是32位int输入 int f(int x) { unsigned int a = x-31; a>>=31; return 30+(x-30)*a; }
fire_woods 2013-02-17
  • 打赏
  • 举报
回复
int f(int x) unsigned int a =
sunbo624 2013-02-17
  • 打赏
  • 举报
回复
引用 9 楼 renzha0013 的回复:
return (((a >> 5) << 5) + 30 + a & 1); 前提是这个数正整数。
运行了 不对啊
renzha0013 2013-02-17
  • 打赏
  • 举报
回复
return (((a >> 5) << 5) + 30 + a & 1); 前提是这个数正整数。
加载更多回复(8)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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